我需要cPickle.dump
一个存储unicodecsv.reader
类实例的对象。当我尝试这样做时,该过程终止,但异常:
PicklingError: Can't pickle <type '_csv.reader'>: it's not the same object as _csv.reader
我发现当你对同一个对象进行多次不同的导入时可能会出现问题,但这不是我的情况。
你可以给我一些关于发生了什么的暗示吗?谢谢!答案 0 :(得分:2)
您的问题是csv.reader
个对象无法被腌制,因此unicodecsv.reader
个对象也无法被腌制。挑选csv.reader
对象通常没有意义,因为它们通常与文件一起使用,而这些文件也无法被腌制。
对您的问题没有简单的解决方案。您可以定义自己的custom pickling methods,告诉pickler如何在不挑选csv.reader
对象的情况下挑选对象,或者您可以重写对象的实现,这样它就不会需要存储unicodecsv.reader
的实例。
答案 1 :(得分:-1)
我的解决方案是酸洗清单(unicodecsv.reader)。