我有以下代码行:
table.put_item( Item={'filename' : key, 'status' : {'M' : iocheckdict }})
iocheckdict
的结构如下:{'A': 'One', 'C': 'Three', 'D': 'Four', 'B': 'Two', 'E': 'Five'}
那么,当我运行代码时,会出现以下错误:
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
,但为什么会出现这种情况?
PS:我的表中有两列filename
和status
表的属性定义:
"AttributeDefinitions": [
{
"AttributeName": "filename",
"AttributeType": "S"
},
{
"AttributeName": "status",
"AttributeType": "S"
}
],
我知道status
的类型是S,但我在创建表时没有找到映射类型。我找到的只有string
、binary
和number
。
"M": {"Name": {"S": "Joe"}, "Age": {"N": "35"}}
,换句话说,dict
部分应该像{"Name": {"S": "Joe"}, "Age": {"N": "35"}}
。 - Emre Sevinçstatus
是我的二级键。所以,它不能接受映射数据类型。我尝试使用_put_item_动态创建一个新列,并且它成功了 :) - Dawny33