读取Python中的二进制字符串,zlib
我想在dynamoDB中存储来自Python的大型JSON(dict) 经过一些调查,似乎zlib是获得良好压缩水平的方法。使用下面的命令,我可以对命令进行编码读取Python中的二进制字符串,zlib,python,json,amazon-dynamodb,zlib,simplejson,Python,Json,Amazon Dynamodb,Zlib,Simplejson,我想在dynamoDB中存储来自Python的大型JSON(dict) 经过一些调查,似乎zlib是获得良好压缩水平的方法。使用下面的命令,我可以对命令进行编码 ranking_compressed = zlib.compress(simplejson.dumps(response["Item"]["ranking"]).encode('utf-8')) (字符串?)然后看起来像这样:b'x\x9c\xc5Z\xdfo\xd3… 我可以直接将其解压缩,并通过以下方式将dict取回: ranki
ranking_compressed = zlib.compress(simplejson.dumps(response["Item"]["ranking"]).encode('utf-8'))
(字符串?)然后看起来像这样:b'x\x9c\xc5Z\xdfo\xd3…
我可以直接将其解压缩,并通过以下方式将dict取回:
ranking_decompressed = simplejson.loads(str(zlib.decompress(ranking_compressed).decode('utf-8')))
到目前为止一切都很好。然而,当将其放入dynamoDB中,然后使用与上面相同的解压缩代码将其读回时。(字符串?)现在如下所示:
Binary(b'x\x9c\xc5Z\xdf...
我得到的错误是:
bytes-like object is required, not 'Binary'
我试着用数据访问二进制文件,但我够不着
非常感谢您的帮助。Boto3
Binary
对象具有值
属性
#一般来说。。。
二进制对象值
#对于你的具体情况。。。
ranking_decompressed=simplejson.loads(str(zlib.decompresse(response[“Item”][“ranking_compressed”].value).解码('utf-8'))
奇怪的是,除了二进制类的源代码之外,似乎没有其他地方记录到这一点如果您可以使用
.value
@KlausD访问二进制
对象的内容,请尝试。谢谢这就成功了:)。写一个答案,我会接受的!