Hol*_*ock 1 python pickle python-3.x dill
我的 Python3 代码中有一个大对象,当尝试使用该pickle模块进行腌制时,会引发以下错误:
TypeError: cannot serialize '_io.BufferedReader' object
Run Code Online (Sandbox Code Playgroud)
但是,dill.dump()并且dill.load()能够无缝地保存和恢复对象。
pickle模块故障的原因是什么?dill保存和重建对象没有任何错误,有什么方法可以验证酸洗和解酸是否dill顺利?pickle失败,但dill成功了?我是dill作者。
1) 最简单的方法是查看这个文件:https : //github.com/uqfoundation/dill/blob/master/dill/_objects.py,它列出了pickle可以序列化的内容以及dill可以序列化的内容。
2)你可以尝试dill.copy和dill.check并dill.pickles检查不同层次的封装状态的。dill还更包括用于检测和诊断序列化问题的实用程序dill.detect和dill.pointers。
3)dill建立在 之上pickle,并通过注册新的序列化函数来增强它。
4)dill包括序列化变体,使用户能够从不同的对象依赖序列化策略(in dill.settings)中进行选择——包括源代码提取和对象重构dill.source(以及 stdlibinspect模块的扩展)。
| 归档时间: |
|
| 查看次数: |
2644 次 |
| 最近记录: |