jpo*_*pou 5 python zlib python-2.7
我正在尝试在 Python 2.7 中解压缩 byte64 编码的字符串。
我可以通过在命令行中运行以下命令来验证我的字符串是否有效:
echo -n "MY_BASE64_ENCODED_STRING" | base64 -d | zcat
Run Code Online (Sandbox Code Playgroud)
但是,如果我在 Python2.7 中运行它:
b64_data = 'MY_BASE64_ENCODED_STRING'
text_data = zlib.decompress(base64.b64decode(b64_data))
Run Code Online (Sandbox Code Playgroud)
我得到一个例外:
解压缩数据时出现错误-3:标头检查不正确
我应该向 zlib.decompress 传递额外的参数以使其工作吗?
正如评论中所述,您的数据采用 gzip 格式,而不仅仅是 zlib 压缩数据。在Python 2.7中,可以使用GzipFile
withStringIO
来处理字符串:
>>> from gzip import GzipFile
>>> from StringIO import StringIO
>>> from base64 import b64decode
>>> data = 'H4sIAEm2algAAytJLS7hAgDGNbk7BQAAAA=='
>>> GzipFile(fileobj=StringIO(b64decode(data))).read()
'test\n'
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4567 次 |
最近记录: |