如何将地图插入 DynamoDB 表?
问题描述
我有以下代码行:
table.put_item( Item={'filename' : key, 'status' : {'M' : iocheckdict }})
iocheckdict
看起来像这样:
{'A': 'One', 'C': 'Three', 'D': 'Four', 'B': 'Two', 'E': 'Five'}
所以,当我运行代码时,我得到了这个错误:
So, when I am running the code, I get this error:
An error occurred (ValidationException) when calling the PutItem operation: One or more parameter values were invalid: Type mismatch for key status expected: S actual: M
即使我提到 M
作为数据的类型,为什么我会得到这个?
Why am I getting this, even though I mentioned M
as the type of the data?
PS:我的表中有 2 列 filename
和 status
PS : I have 2 columns filename
and status
in my table
表的属性定义:
"AttributeDefinitions": [
{
"AttributeName": "filename",
"AttributeType": "S"
},
{
"AttributeName": "status",
"AttributeType": "S"
}
],
我知道status
的类型是S,但是我在建表的时候没有找到map类型.我找到的只有 string
、binary
和 number
.
I understand that the type of status
is S, but I haven't found the map type while creating the table. All I found are string
, binary
and number
.
解决方案
插入dynamodb的更简单方法
Easier way to insert into dynamodb
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table("table_name")
item={}
item['filename'] = key
item['status'] = {'A': 'One', 'C': 'Three', 'D': 'Four', 'B': 'Two', 'E': 'Five'}
table.put_item(Item=item)
相关文章