【问题标题】:How can pickled byte data be unpickled?腌制的字节数据如何被取消腌制?
【发布时间】:2015-05-12 19:02:10
【问题描述】:

如何从 BytesIO 对象写入和读取腌制数据?

我试过了:

import io
import cPickle as pickle

s1 = "foo"
bytes_io = io.BytesIO()
pickle.dump(s1, bytes_io, pickle.HIGHEST_PROTOCOL)
s2 = pickle.load(bytes_io)

其中给出了 pickle.load 行:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
EOFError

【问题讨论】:

    标签: python pickle


    【解决方案1】:

    您只是没有倒带缓冲区:bytes_io.seek(0)pickle.load 之前。

    您可能不想倒退到缓冲区的前面,而只想倒退到腌制数据的开头。然后在酸洗之前用bytes_io.tell()读出流位置,并寻找到那个位置而不是0

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-15
      相关资源
      最近更新 更多