【发布时间】:2016-04-06 23:53:48
【问题描述】:
我正在尝试序列化具有混合数据类型的 Python 对象——原生 Python、numpy、内置 Python 的子类。 Pickle 和 cPickle 足够强大,可以处理所有数据类型,但我达到了大小限制(>300MB);我知道这一点,因为在加载腌制对象时,我看不到完整的对象被序列化。寻找一个更有效的替代 cPickle 我尝试了以下方法,但对数据类型没有任何作用:json、simplejson、json 的自定义子类,用于将 numpy 类型转换为本机 Python、marshal(不处理内置的子类类型,例如 defaultdict)、MessagePack。你有什么建议吗?提前致谢!
【问题讨论】:
-
大小限制? pickle 协议和实现有一些限制,但我认为在 300 MB 标记附近没有任何大小限制。你能给出一些简单的、可运行的示例代码来构造一个巨大的对象,对其进行腌制和取消腌制,从而使取消腌制的结果与原始对象不匹配吗?
-
@lordingtar 是的,但它无法处理一些自定义数据类型。
标签: python json serialization pickle