我正在尝试在Python 2.7中解压缩byte64编码的字符串。
我可以通过在命令行中运行它来验证我的字符串是否有效:
echo -n "MY_BASE64_ENCODED_STRING" | base64 -d | zcat
但是,如果我在Python2.7中运行它:
b64_data = 'MY_BASE64_ENCODED_STRING'
text_data = zlib.decompress(base64.b64decode(b64_data))
我得到一个例外:
解压缩数据时出错-3:错误的标题检查
我应该将额外的参数传递给zlib.decompress以使其工作吗?
答案 0 :(得分:2)
如评论中所述,您的数据采用gzip格式,而不仅仅是zlib压缩数据。在Python 2.7中,您可以使用GzipFile
和StringIO
来处理字符串:
>>> from gzip import GzipFile
>>> from StringIO import StringIO
>>> from base64 import b64decode
>>> data = 'H4sIAEm2algAAytJLS7hAgDGNbk7BQAAAA=='
>>> GzipFile(fileobj=StringIO(b64decode(data))).read()
'test\n'