【发布时间】:2015-02-20 01:21:01
【问题描述】:
我有一个将网络流量存储到 Mongo DB 的系统,我现在想从特定连接中检索数据包,然后将所有数据转储到磁盘上的文件中。在具体情况下,它是压缩数据,因此以 \x1f\x8b\x08\x00 开头
我检索数据的代码如下:
with codecs.open("filename", "wb", "utf-8") as fh:
for packet in packets:
fh.write(packet["data"])
执行代码时出现错误
UnicodeDecodeError: 'ascii' codec can't decode byte 0x8b in position 1: ordinal not in range(128)
已经使用过一些 Python 2,我意识到编码总是很棘手。我已经尝试了许多编码和解码的组合,但是 Python 失败并显示类似的消息,或者生成的文件已损坏(例如,在其上抛出 .decode('latin-1') 会产生正确的 unicode 字符串,但是当写入文件时,而不是写入 @ 987654325@ 结果是\x1f\xc2\x8b\x08\x00)。
此外,基本上在这里阅读任何问题和适当的答案并没有真正让我失望 :-( 有什么建议吗?在 Python 中解码 gzip 数据不是一种选择,因为数据可能是任意二进制 blob。
【问题讨论】:
标签: python mongodb encoding pymongo bson