Создание элемента «SS» в DynamoDB с помощью boto3 - PullRequest
0 голосов
/ 10 ноября 2018

Я пытаюсь создать элемент в AWS DynamoDB, используя boto3, и независимо от того, что я пытаюсь, мне не удается получить элемент типа 'SS'. Вот мой код:

client = boto3.resource('dynamodb', region_name=region)
table = client.Table(config[region]['table'])
sched = {
    "begintime": begintime,
    "description": description,
    "endtime": endtime,
    "name": name,
    "type": "period",
    "weekdays": [weekdays]
}
table.put_item(Item=sched)

Другие столбцы работают нормально, но независимо от того, что я пытаюсь, weekdays всегда заканчивается как 'S' тип. Для справки, вот как выглядит один из других элементов из той же таблицы:

{'begintime': '09:00', 'endtime': '18:00', 'description': 'Office hours', 'weekdays': {'mon-fri'}, 'name': 'office-hours', 'type': 'period'}

Попытка преобразовать это в структуру Python явно не удалась, поэтому я не уверен, как можно вставить новый элемент.

1 Ответ

0 голосов
/ 10 ноября 2018

Чтобы указать атрибут типа SS (набор строк) с помощью методов уровня ресурсов boto3 DynamoDB, вам нужно предоставить набор, а не простой список. Например:

import boto3

res = boto3.resource('dynamodb', region_name=region)

table = res.Table(config[region]['table'])

sched = {
    "begintime": '09:00',
    "description": 'Hello there',
    "endtime": '14:00',
    "name": 'james',
    "type": "period",
    "weekdays": set(['mon', 'wed', 'fri'])
}

table.put_item(Item=sched)
...