我已成功使用带有boto库的写批量项。但是,当我尝试将地图值添加到请求时,我得到以下异常:
参数RequestItems.TestMap的类型无效,值:
{'PutRequest':
{'Item': {
'field1': {'S': '0.0'},
'field2': {'M': {'Age': {'N': '35'}, 'Name': {'S': 'Joe'}}}
}
}
}
, type: <type 'dict'>, valid types: <type 'list'>, <type 'tuple'>*
知道什么是错的吗?
此致 伊万。
答案 0 :(得分:0)
field2
可以像这样形成。 DynamoDB会自动将其解释为MAP(即无需特别提及&#39; M&#39;)。如果你特别提到,它会创建嵌套的地图结构(参考屏幕截图2)。
'field2': {'Age': 35, 'Name': 'Joe'}
您的代码将创建嵌套地图。
response = table.put_item(
Item={
'yearkey': year,
'title': title,
'info': {
'plot':"Nothing happens at all.",
'rating': decimal.Decimal(0)
},
'field2': {'Age': 35, 'Name': 'Joe'}
}
)
地图结构(正确): -
嵌套地图结构(不正确): -
答案 1 :(得分:0)
我得到的错误并不是指格式本身而是指类型。一旦我在一个数组中封装了对象,一切都很顺利