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

edA*_*a-y 4 boto amazon-dynamodb

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

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

小智 12

boto提供了Binary类来自动执行此操作:

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

Table('mytable').put_item({'hashkey': Binary('\x01\x02')})
Run Code Online (Sandbox Code Playgroud)

  • 仅供参考,解码,获取项目并使用`.value`成员.例如:`item ['hashkey'].value` (6认同)

Jha*_*Fon 5

它需要被 base 64 编码成一个字符串。

from base64 import b64encode
data = {'B': b64encode(binary_data)}
Run Code Online (Sandbox Code Playgroud)

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

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