python - 如何在json中转储压缩字符串?

标签 python json dictionary compression zlib

我有一个正在使用 zlib 压缩的字符串,将其存储在字典中并创建字典的 md5 散列。但我收到错误:

UnicodeDecodeError: 'utf8' codec can't decode byte 0x9c in position 1: invalid start byte

代码是:

data['extras'] = zlib.compress("My string".encode("utf-8"))  //The string is very large that\'s why it\'s needed to be compressed to save up memory 
checkup['hash'] = hashlib.md5(json.dumps(dict(data), sort_keys=True)).hexdigest()

字典是这样的:

{'extras':'x\x9cK\x04\x00\x00b\x00b'}

谁能告诉我如何将这个字典/字符串转储到 JSON 中?

字符串是一个很长的json。像这样的东西:

{
    "listing": {
            "policies": null,
            "policy_explanation": "Some Text",
            "policy_name": "Flexi3",
            "updated": "7 weeks ago",
            "city": "Bengaluru",
            "country": "India",
             .
             .
             .   
}

最佳答案

您可以先对其进行 base64 编码,使其正常工作。它会增加一些字符串的大小,但可能比你先压缩它保存的要少:

data['extras'] = base64.b64encode(zlib.compress("My string".encode("utf-8")))

关于python - 如何在json中转储压缩字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34343627/

相关文章:

python - 我怎样才能把这个函数变成一个循环? Python

Android News App - 不要一次下载所有 json

java - 使用 ObjectMapper 时如何设置 jackson 序列化深度级别?

python - 使用请求和 psycopg2 在 Postgres 中创建/插入 Json

python - 需要帮助将两个 3 channel 图像组合成 6 channel 图像 Python

python - 如何从搜索列表中突出显示 QTableWidget 中的单词

java - 使用 Jackson 将不同字段编码为一个变量

arrays - 如何使用 Swift 将字典添加到数组?

ios - 从属性构建索引

java - 兰伯特等角圆锥 map 投影在java中获取网格的x,y值