使用 boto3 在 DynamoDB 中创建“SS”项目

Den*_*ory 3 amazon-web-services python-3.x amazon-dynamodb boto3

我正在尝试使用 boto3 在 AWS DynamoDB 中创建一个项目,无论我尝试什么,我都无法创建“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)
Run Code Online (Sandbox Code Playgroud)

其他列工作正常,但无论我尝试什么,weekdays总是以“S”类型结束。作为参考,这是同一张表中其他项目之一的样子:

{'begintime': '09:00', 'endtime': '18:00', 'description': 'Office hours', 'weekdays': {'mon-fri'}, 'name': 'office-hours', 'type': 'period'}
Run Code Online (Sandbox Code Playgroud)

尝试将其转换为 Python 结构显然失败了,所以我不确定如何插入新项目。

jar*_*mod 7

要使用 boto3 DynamoDB 资源级方法指示 SS(字符串集)类型的属性,您需要提供一个集合而不是一个简单的列表。例如:

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)
Run Code Online (Sandbox Code Playgroud)