我想批量上传一个json文件到dynamodb。目前我可以成功地将项目手动放入 python 文件(如下所示)并上传到表中,但是如何修改脚本以读取外部 json 文件(包含 200 个项目)并将所有 200 个项目批量上传到表中.
import boto3
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('exampletable')
with table.batch_writer() as batch:
batch.put_item(
Item={
'ID': '2',
'DateTime': '21/12/2017 13:16',
'SourceDevice': '10',
'DestinationDevice': '20',
'DataType': 'full',
'Activity': 'unusual'
}
)
batch.put_item(
Item={
'ID': '3',
'DateTime': '21/12/2017 13:40',
'SourceDevice': '10',
'DestinationDevice': '20',
'DataType': 'full',
'Activity': 'unusual'
}
)
json文件内容如下
[{
"ID": "1",
"DateTime": "21/12/2017 13:16",
"SourceDevice": "10",
"DestinationDevice": "20",
"DataType": "part",
"Activity": "normal"
}, {
"ID": "1",
"DateTime": "21/12/2017 13:16",
"SourceDevice": "40",
"DestinationDevice": "25",
"DataType": "full",
"Activity": "unusual"
}]
最佳答案
您可以简单地将其分解为两个任务:
- 从文件中读取 JSON
- 遍历 JSON,每次调用
batch.put_item
。
有lots of results当您搜索第一个任务时。第二个任务字面意思是 just writing a loop .
一个完整的解决方案看起来像这样:
import json
import boto3
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('exampletable')
# Read the JSON file
with open('items.json') as json_data:
items = json.load(json_data)
with table.batch_writer() as batch:
# Loop through the JSON objects
for item in items:
batch.put_item(Item=item)
关于python-3.x - 使用boto3批量上传json到dynamodb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54154976/