如何使用boto在Dynamo中存储二进制数据?

时间:2014-01-31 10:45:04

标签: boto amazon-dynamodb

我无法从docs / examples中确定如何使用boto的dynamodb2存储/读取DynamoDB中的二进制数据。怎么做?

我的猜测是项目值类似{ 'B': binary-data },但这会导致JSON编码器出错。

2 个答案:

答案 0 :(得分:10)

boto提供二进制类来自动执行此操作:

from boto.dynamodb2.table import Table
from boto.dynamodb.types import Binary

Table('mytable').put_item({'hashkey': Binary('\x01\x02')})

答案 1 :(得分:4)

需要将base 64编码为字符串。

from base64 import b64encode
data = {'B': b64encode(binary_data)}

有一个库可以为您执行此操作:PynamoDB。 可以找到处理Python 2和3的二进制序列化的代码here

免责声明:我是PynamoDB的作者。