我添加数据从csv文件使用lambda函数的数据被添加,但有一个错误,在我的表中dynamodb我看到我的标题也在表中的一行这里是我的代码:
import boto3
s3=boto3.client("s3")
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('maysales')
def lambda_handler(event, context):
bucketna=event['Records'][0]['s3']['bucket']['name']
s3_name=event['Records'][0]['s3']['object']['key']
response=s3.get_object(Bucket=bucketn,Key=s3_name)
data=response['Body'].read().decode("utf-8")
salesnbs=data.split("\n")
for ko in salesnbs:
kos=ko.split(",")
table.put_item(
Item = {
"Date": kos[0],
"name": kos[1],
"fam": kos[2],
"locati": kos[3],
"adress": kos[4],
"country": kos[5],
"city": kos[6]
})
我的表格已经包含标题:
4条答案
按热度按时间shstlldc1#
大多数CSV文件的第一行包含标题标签,如果您不想将该行添加到dynamodb表中,您需要跳过第一行,然后再开始插入,即:
(语法可能不是100%正确,但这就是思想)
zujrkrfu2#
从描述中还不完全清楚问题出在哪里,但是我建议使用Python内置的csv模块来处理CSV数据,这样你就不用担心标头和将文件拆分成列,因为模块提供了相关的工具。
模块将文件的第一行用作列名。
af7jpaap3#
现在从下面修改的@ E. J. Brennan代码,我们可以跳过头,同时把csv文件从s3到dynamodb.下面的代码替换到您的lambda函数.
8fq7wneg4#
使用boto3客户端而不是资源。安装dynamodb-json