将多个项目写入 DynamoDB table

Write multiple items to DynamoDB table

我有以下词典列表:

datalist = [
    {'Business': 'Business A', 'Category': 'IT', 'Title': 'IT Manager'},
    {'Business': 'Business A', 'Category': 'Sourcing', 'Title': 'Sourcing Manager'}
]

我想以下列格式上传到 DynamoDB:

table.put_item(Item={
                    'Business':'Business A would go here',
                    'Category':'IT would go here',
                    'Title':'IT Manager would go here'
                    },
                    {
                    'Business':'Business B would go here',
                    'Category':'Sourcing would go here',
                    'Title':'Sourcing Manager would go here'
                    }
               )

我试过先将字典列表转换为字典,然后以这种方式访问​​元素或尝试遍历 Items 参数,但没有成功。任何帮助将不胜感激。

这是我的 DynamoDB 结构,3 列(业务、类别、标题):

{
  "Business": {
    "S": "Business goes here"
  },
  "Category": {
    "S": "Category goes here"
  },
  "Title": {
    "S": "Title goes here"
  }
}

put_item API 调用允许您只上传一个项目,您试图同时上传两个项目,这是行不通的。

您可以使用 boto3 对多个放置项请求进行批处理,以减少 API 调用的次数。这是改编自 documentation:

的示例
with table.batch_writer() as batch:

    for item in datalist:

        batch.put_item(
            Item=item
        )

这将在后台自动创建批写入。