как загрузить многострочный JSON в DynamodB - PullRequest
0 голосов
/ 05 апреля 2019

Я хочу разобрать jsonfile, который выглядит так:

{
    "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
        },

динамоде в 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 Марвин

...