以下代码:
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已经是一个列表
答案 0 :(得分:7)
with open("J:\\python\\.data", "rb") as data:
self.data=pickle.load(data)
如pickle
docs中所述:
这需要一个二进制文件来读取pickle数据流。
因此,您需要使用模式"rb"
为二进制文件打开它。
答案 1 :(得分:1)
就我而言,它试图打开一个在以前版本的Python(2.7)下腌制的对象。
一旦我重新腌制它,一切都很好。