如何将多行json上传到dynamodb

时间:2019-04-05 13:03:46

标签: python aws-lambda amazon-dynamodb boto3

我想解析一个看起来像json文件:

{
    "Accounts": [
        {
            "Id": "XXXXXXXXX",
            "Arn": "arn",
            "Email": "a@b.com",
            "Name": "name1",
            "Status": "ACTIVE",
            "JoinedMethod": "CREATED",
            "JoinedTimestamp": 1551173144.078
        },
        {
            "Id": "XXXXXXXX",
            "Arn": "arn",
            "Email": "b@d.com",
            "Name": "Name2",
            "Status": "ACTIVE",
            "JoinedMethod": "INVITED",
            "JoinedTimestamp": 1462800156.0
        },
通过lambda进入AWS中的动力发电机。 我可以通过以下方式上传一行:

table = dynamodb.Table('list')
table.put_item(Item=jsonDict)

因此,我从文件中复制了一个数组(?!)到一个新文件中。 现在我想使用批量上传,但是出现了一些错误,主要是: [错误] JSONDecodeError:额外数据:第1行第257列(字符256) 要么 参数RequestItems.accountlist [0] .PutRequest.Item的类型无效,值:帐户,类型:,有效类型:

我有以下代码:

bucket=event['Records'][0]['s3']['bucket']['name']
    json_filename = event ['Records'][0]['s3']['object']['key']
    json_object = s3_client.get_object(Bucket=bucket, Key=json_filename)
    jsonFileReader = json_object['Body'].read()
    jsonDict = json.loads(jsonFileReader)
    table = dynamodb.Table('list')
    #table.put_item(Item=jsonDict)

    items = json.load(jsonFileReader)

    with table.batch_writer() as batch:

        # Loop through the JSON objects
        for item in items:
            batch.put_item(Item=item)

我也尝试过删除json文件中的嵌套对象,但是没有成功。 有什么建议么。 KR 马文

0 个答案:

没有答案