python 3.0 pickle.load TypeError

时间:2012-06-30 22:31:10

标签: python pickle typeerror

以下代码:

with open("J:\\python\\.data") as data:
    self.data=pickle.load(data)

生成以下错误:

File "J:\python\code.py", line 50, in get_events
    self.data=pickle.load(data)
TypeError: 'str' does not support the buffer interface

我读到我可能要编码它,我尝试了utf-8但是没有用。有哪些其他格式?我正朝着正确的方向前进吗?

我忘了提到.data中的对象是一个列表,并使用协议2进行了pickle。var self.data已经是一个列表

2 个答案:

答案 0 :(得分:7)

with open("J:\\python\\.data", "rb") as data:
    self.data=pickle.load(data)

pickle docs中所述:

  

这需要一个二进制文件来读取pickle数据流。

因此,您需要使用模式"rb"为二进制文件打开它。

答案 1 :(得分:1)

就我而言,它试图打开一个在以前版本的Python(2.7)下腌制的对象。

一旦我重新腌制它,一切都很好。