Python 2 - ValueError:没有足够的值来解压缩(预期6,得1)

时间:2017-02-02 00:48:07

标签: python save load

我一直收到这个错误,我不知道如何修复它我需要帮助。

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)

1 个答案:

答案 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。