【发布时间】:2015-04-10 10:40:11
【问题描述】:
我收到了一个包含两个腌制对象的文件 - 它是作为 .pk 文件发送给我的。有人告诉我它有两个对象,但是,我尝试解开这些文件是不成功的。
第一个腌制对象包含数字对及其罗马数字的字典,第二个包含罗马数字及其数字的字典对。如何分别解开这两个字典?
这是我下面的内容,以及我收到的错误消息:
import pickle
x,y=pickle.load(open("C://Users//Documents//roman.pk", "rb"))
print(x,y)
错误信息:
ValueError: too many values to unpack (expected 2)
【问题讨论】:
-
如果你只是
pickle.load一个对象会发生什么,然后看看它包含什么?字典之一?还有什么?你也可以尝试在同一个文件上调用pickle.load两次(即open一次,然后load两次)。见stackoverflow.com/q/20716812/3001761 -
如果我只用一个变量运行它,那么它会给我一个字典。如果我尝试从中加载两次,它只会给我第一本字典两次。
-
您是否两次都使用
load(open(...))?如果是这样,这会将指针重置为文件的开头。您需要打开一次(最好使用with上下文管理器 - 请参阅stackoverflow.com/a/3287367/3001761)。 -
抱歉,误解了您的回答。按照您的建议切换格式,它正在工作!非常感谢