gpt4 book ai didi

python - 在 Python 中读取二进制字符串,zlib

转载 作者:行者123 更新时间:2023-11-28 19:09:46 29 4
gpt4 key购买 nike

我想在 dynamoDB 中存储来自 Python 的大型 JSON(dict)。

经过一些调查,zlib 似乎是获得良好压缩水平的方法。使用下面我可以对字典进行编码。

ranking_compressed = zlib.compress(simplejson.dumps(response["Item"]["ranking"]).encode('utf-8'))

(字符串?)然后看起来像这样:b'x\x9c\xc5Z\xdfo\xd3...

我可以直接解压它并取回字典:

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'

我试过使用例如访问二进制文件.data 但我无法访问它。

感谢任何帮助。

最佳答案

Boto3 Binary 对象有一个 value 属性。

# in general...
binary_obj.value
# for your specific case...
ranking_decompressed = simplejson.loads(str(zlib.decompress(response["Item"]["ranking_compressed"].value).decode('utf-8')))

奇怪的是,除了 Binary 类的源代码外,这似乎无处记录 here

关于python - 在 Python 中读取二进制字符串,zlib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41947506/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com