Python如何解压经gzip压缩后再base64编码的字典字符串?
问题原因
你报错的核心原因是操作顺序错误:当前字符串是先gzip压缩,再base64编码得到的,解压时必须先完成base64解码得到原始的gzip二进制数据,再做gzip解压。你直接把base64字符串转成UTF-8字节就传入gzip解压接口,传入内容不符合gzip格式规范,所以触发报错。
正确操作步骤
- 导入依赖库:需要用到
base64做编码解码、gzip做解压、json做字典反序列化 - 对目标base64字符串做base64解码,得到gzip压缩后的二进制数据
- 对二进制数据执行gzip解压,得到原始JSON字符串对应的字节
- 把解压后的字节转成字符串,再通过json反序列化为字典
可直接运行的代码
import gzip import base64 import json compressed_str = "H4sIAAAAAAAA/6tWKkktLjFUsjI00lEAs42UrCAMpVoAbyLr+R0AAAA=" # 先做base64解码 gzip_data = base64.b64decode(compressed_str) # 再做gzip解压 raw_content = gzip.decompress(gzip_data) # 反序列化得到原始字典 result = json.loads(raw_content.decode("utf-8")) print(result) # 输出结果:{'test1': 12, 'test2': 'test'}
内容的提问来源于stack exchange,提问作者ANURAG BISHT
相关产品推荐
相关产品推荐

