解决方案:更新到全新的boto 2.35.2解决了问题。
如何使用boto在DynamoDB中存储dicts的词典?
我一直在尝试的简单方法似乎无法奏效。尝试以这种方式保存项目:
data = {
'id': '123456',
'foo': {'hello': 'world'}
}
item = Item(my_table, data=data)
item.save(overwrite=True)
生成此异常:
TypeError: Unsupported type "<type 'dict'>" for value "{'hello': 'world'}"
我在网上看到conflicting information是否支持此功能。我无法上班;我正在使用boto 2.35.1。
这是一个展示问题的完整示例:
import boto.dynamodb2
from boto.dynamodb2.fields import HashKey
from boto.dynamodb2.table import Table
from boto.dynamodb2.items import Item
conn = boto.dynamodb2.connect_to_region('us-east-1')
my_table = Table.create('my_table',
connection=conn,
schema=[
HashKey('id')
])
my_table = Table('my_table')
data = {
'id': '123456',
'foo': {'hello': 'world'}
}
item = Item(my_table, data=data)
item.save(overwrite=True)
答案 0 :(得分:1)
DynamoDB API现在支持地图和列表对象:
http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataFormat.html
最后一个boto版本的接缝(昨天在我回答的时候)也添加了这个:
http://boto.readthedocs.org/en/latest/releasenotes/v2.35.2.html
但我个人还没玩过。