【问题标题】:AWS DynamoDB - Load data with Boto3 using JSON file as inputAWS DynamoDB - 使用 JSON 文件作为输入使用 Boto3 加载数据
【发布时间】:2019-12-13 03:34:06
【问题描述】:

我在 Amazon DynamoDB 中有多个表,JSON 数据 目前使用 batch-write-item 命令上传到表中,该命令是 AWS CLI 的一部分 - 这很好用。

但是我想只使用 Python + Boto3 能够使用外部执行 Boto BatchWriteItem 请求数据文件作为输入。我设想如果有一个 Boto3 脚本,它会如下所示,但我无法找到它的文档/示例。

示例(伪代码)

table = dynamodb.Table(‘my_table’)
table.BatchWriteItem(RequestItems=file://MyData.json)

参考:http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_BatchWriteItem.html

感谢指点。

【问题讨论】:

    标签: python amazon-web-services amazon-dynamodb boto boto3


    【解决方案1】:

    最好的地方是 Boto3 的阅读文档:https://boto3.readthedocs.org/en/latest/reference/services/dynamodb.html#DynamoDB.Client.batch_write_item

    只要您的 JSON 格式正确,如示例中所示,您就可以使用:

    f = open('MyData.json')
    request_items = json.loads(f.read())
    client = boto3.client('dynamodb')
    response = client.batch_write_item(RequestItems=request_items)
    

    【讨论】:

      【解决方案2】:

      我以这种方式加载了 JSON

      import boto3
      import json
      
      dynamodbclient=boto3.resource('dynamodb')
      sample_table = dynamodbclient.Table('ec2metadata')
      
      with open('/samplepath/spotec2interruptionevent.json', 'r') as myfile:
          data=myfile.read()
      
      # parse file
      obj = json.loads(data)
      
      #instance_id and cluster_id is the Key in dynamodb table 
      
          response=sample_table.put_item(
                                    Item={
                                        'instance_id': instanceId,
                                        'cluster_id': clusterId,
                                        'event':obj
      
                                    }
                                    )
      

      【讨论】:

        猜你喜欢
        • 2017-12-07
        • 1970-01-01
        • 2012-10-01
        • 2021-02-21
        • 1970-01-01
        • 2021-04-06
        • 1970-01-01
        • 2019-06-06
        相关资源
        最近更新 更多