gpt4 book ai didi

python - 获取异常 pickle.dump

转载 作者:太空宇宙 更新时间:2023-11-04 01:30:26 24 4
gpt4 key购买 nike

如果这已经在其他地方得到回答,我们深表歉意。我在网上找了一圈,没有找到明确的答案

我有一个类定义(包含多个值和方法),以及列表中保存的类的多个实例。 (每个列表条目都是一个实例。)

当我尝试 pickle 列表时,出现“pickle.PicklingError”异常。这让我了解到有些对象不是“可腌制的”,但看起来我的简单列表应该没问题。

哪些对象是不可腌制的?

这里是执行酸洗的实际代码。 (此代码是在类内部定义的方法,该类还包含我需要 pickle 的类对象。这是问题的一部分吗?)

def Write_Transaction_History_To_File(self):
if (self.Transaction_History == True): # if History is not empty

filename = self.Transaction_Name + '_Transaction_History.bin'
f = open(filename, 'w')

try:
pickle.dump(self.Transaction_History , f, -1) #use highest protocol
except pickle.PicklingError:
print 'Error when serializing data'
f.close()

else:
print 'No History to store'

最佳答案

如果您尝试对不在模块范围内的嵌套类进行 pickle,则会遇到麻烦。

来自docs :

The following types can be pickled:


None, True, and False
integers, long integers, floating point numbers, complex numbers
normal and Unicode strings
tuples, lists, sets, and dictionaries containing only picklable objects
functions defined at the top level of a module
built-in functions defined at the top level of a module
classes that are defined at the top level of a module
instances of such classes whose __dict__ or the result of calling __getstate__() is
picklable (see section The pickle protocol for details).

关于python - 获取异常 pickle.dump,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14204647/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com