gpt4 book ai didi

python - 如何从 csv 插入到 dynamodb

转载 作者:行者123 更新时间:2023-12-02 16:36:28 25 4
gpt4 key购买 nike

Dynamo db 有一个表 employees 主键作为 id

data.csv 在下面上传到csvdynamo bucket

bucket_name = csvdynamo

id,name,co
20,AB,PC
21,CD,PC
22,EF,MC
23,GH,MC

需要将上面的csv插入dynamodb

伪代码

for emp in employees:
emp_data= emp.split(',')
print (emp_data)

try:
table.put_item(
Item = {
"emp_id": int(emp_data[0]),
"Name": emp_data[1],
"Company": emp_data[2]
}
)
except Exception as e:
pass

最佳答案

这是 有效 的 lambda 函数示例,因为我使用自己的函数、csv 文件和 dynamodb 验证它。我认为代码是不言自明的。它应该是您最终用例的良好开端

          import boto3
import json
import os

bucket_name = os.environ['BUCKET_NAME']
csv_key = os.environ['CSV_KEY_NAME'] # csvdynamo.csv
table_name = os.environ['DDB_TABLE_NAME']

# temprorary file to store csv downloaded from s3
tmp_csv_file = '/tmp/' + csv_key

s3 = boto3.resource('s3')
db_table = boto3.resource('dynamodb').Table(table_name)

def save_to_dynamodb(id, name, co):

return db_table.put_item(
Item={
'emp_id': int(id),
'Name': name,
'Company': co
})

def lambda_handler(event, context):

s3.meta.client.download_file(
bucket_name,
csv_key,
tmp_csv_file)

with open(tmp_csv_file, 'r') as f:

next(f) # skip header

for line in f:

id, name, co = line.rstrip().split(',')

result = save_to_dynamodb(id, name, co)

print(result)

return {'statusCode': 200}

关于python - 如何从 csv 插入到 dynamodb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62650527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com