我一直收到这个错误,我不知道如何修复它我需要帮助。
ValueError: not enough values to unpack (expected 6, got 1)
这是我加载的方式
with open('objs.pickle', "rb") as f:
money, hunger, thirst, energy, wanted, gun = pickle.load(f)
这就是我保存的方式
with open('objs.pickle', 'ab') as f: # Python 3: open(..., 'wb')
pickle.dump([money, hunger, thirst, energy, gun, wanted], f)
答案 0 :(得分:0)
pickle.load只会加载它在文件中找到的第一个pickle对象。在你的情况下,这是一个包含两个以上键的字典,因此x,y = pickle.load(...)失败,因为它试图将字典的键解包为标识符x和y。
with open("objs.pickle") as f:
first_dict = pickle.load(f) # file pointer is now at end of first object
second_dict = pickle.load(f) # read in second object
等
如果将这些单词放入单个对象,例如单个对象的元组和泡菜。如果您不确切知道文件中有多少腌制对象,这就容易多了。
my_list = ['money', 'hunger', 'thirst', 'energy', 'wanted', 'gun']
tuple(my_list)
现在更容易挑选元组my_list。