python-3.x - 使用boto3批量上传json到dynamodb

标签 python-3.x boto3

我想批量上传一个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"
}]

最佳答案

您可以简单地将其分解为两个任务:

  1. 从文件中读取 JSON
  2. 遍历 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/

相关文章:

python - 使用 ldap3 库更改 OpenLDAP 中的用户密码

python - 如何使用不到 1% 的 CPU 运行 Python 代码?

python - 安装了 cairosvg 和 cairocffi 但在导入时出错

amazon-web-services - Airflow Emr Dag 成功但集群未启动

python-3.x - 我在哪里可以获得 AWS 用户所做的事件日志

Python - 如何设置法语语言环境?

python-3.x - 如何将 Python 中的代码和 Markdown 单元格导入 Jupyter Notebook?

python - 如何使用 boto3 中预签名的 url 从 S3 获取对象?

python - 访问 job.get_output ('body' 中的流)

python-3.x - 如何检查 boto3 S3.Client.upload_fileobj 是否成功?