【问题标题】:Why can't I pickle an instance of unicodecsv.reader?为什么我不能腌制 unicodecsv.reader 的实例?
【发布时间】:2016-02-20 14:00:06
【问题描述】:

我需要cPickle.dump 一个存储unicodecsv.reader 类实例的对象。当我尝试这样做时,进程终止并出现异常:

PicklingError: Can't pickle <type '_csv.reader'>: it's not the same object as _csv.reader

我发现当您对同一个对象有多个不同的导入时,这可能会出现问题,但我的情况不是这样。

你能告诉我发生了什么吗?谢谢!

【问题讨论】:

    标签: python python-2.7 pickle


    【解决方案1】:

    您的问题是 csv.reader 对象不能被腌制,所以 unicodecsv.reader 对象也不能被腌制。腌制csv.reader 对象通常没有意义,因为它们通常与文件一起使用,也不能腌制。

    您的问题没有简单的解决方案。您可以定义自己的custom pickling methods,告诉pickler 如何在不酸洗csv.reader 对象的情况下酸洗对象,或者您可以重写对象的实现,这样它就不需要存储unicodecsv.reader 的实例。

    【讨论】:

      【解决方案2】:

      我的解决方案是腌制列表(unicodecsv.reader)。

      【讨论】:

        猜你喜欢
        • 2016-02-21
        • 2011-11-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-14
        • 2014-12-04
        • 2012-01-10
        相关资源
        最近更新 更多