尝试在Python3.4中将gzip压缩和base64编码数据解码为可读格式。
import base64
import zlib
original_data = '...jU2X0NCQ19TSEEAAAABAAA=' #Data cut short.
decoded64 = base64.b64decode(original_data) #format:b'\x16xe\x94...\xae\x9a\...'
final_decoded = zlib.decompress(decoded64)
print(final_decoded)
得到:“准备解压缩数据时出现错误-2:流状态不一致。”不知道我做错了什么。
答案 0 :(得分:6)
zlib
成功解压缩先前已压缩的数据:
>>> data = b'data'
>>> import zlib
>>> compressed = zlib.compress(data)
>>> import base64
>>> original_data = base64.b64encode(compressed).decode()
>>> zlib.decompress(base64.b64decode(original_data))
b'data'
zlib
无法解压缩(使用默认设置)gzip
数据:
>>> import gzip
>>> gzipped_data = base64.b64encode(gzip.compress(data)).decode()
>>> gzipped_data != original_data
True
>>> print(zlib.decompress(base64.b64decode(gzipped_data)))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
zlib.error: Error -3 while decompressing data: incorrect header check
>>> gzip.decompress(base64.b64decode(gzipped_data))
b'data'
答案 1 :(得分:1)
我有同样的问题并以这种方式解决:
ggtern
使用它,你的代码不会写一个文件,我测试过。 非常有用,因为您可以轻松地读取zip文件中的文件,例如以前通过休息接收的文件。