Python 2 - ValueError: not enough values to unpack (expected 6, got 1)

Python 2 - ValueError: not enough values to unpack (expected 6, got 1)

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

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)

pickle.load 只会加载它在文件中找到的第一个腌制对象。在您的情况下,这是一个包含两个以上键的字典,因此 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

等等

如果将这些词放在一个对象中会更好,例如一个元组和泡菜那个单一的对象。当您不知道文件中有多少个 pickled 对象时,这会容易得多。

my_list = ['money', 'hunger', 'thirst', 'energy', 'wanted', 'gun']
tuple(my_list)

现在腌制元组 my_list。