Как добавить / обновить записи DynamoDB, создав или добавив атрибут списка? - PullRequest
0 голосов
/ 30 апреля 2018

Вот мой вариант использования, мне нужно добавить и обновить записи в таблице DynamoDB, например:

Если ключ раздела не существует, добавьте его и добавьте новый список из одного элемента, содержащий строковое значение. Если ключ раздела существует, добавьте новую строку в его атрибут списка. У меня есть код, который Python / boto3 выглядит так:

response = ddb_client.update_item(
    TableName=target_ddb_table,
    Key={'email-hash': {'S' : encrypted_hashed_pw},},
    ExpressionAttributeValues={ ":my_value":[{"S":"test"}], ":empty_list":[] },
    UpdateExpression='SET site_ids = list_append(if_not_exists(site_ids, :empty_list), :my_value)',
    ReturnValues='ALL_NEW'
)

Я получаю эти ошибки, я понимаю, что я делаю что-то глупое здесь: re

Invalid type for parameter ExpressionAttributeValues.:empty_list, value: [], type: <class 'list'>, valid types: <class 'dict'>
Invalid type for parameter ExpressionAttributeValues.:my_value, value: [{'S': 'test'}], type: <class 'list'>, valid types: <class 'dict'>

1 Ответ

0 голосов
/ 30 апреля 2018

Разобрался, мне нужно добавить информацию о типах для списков:

":my_value": {"L": [{"S": "test"}]}, ":empty_list": {"L": []}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...