我的Python3代码中有一个大对象,当尝试用pickle
模块腌制时,会引发以下错误:
TypeError: cannot serialize '_io.BufferedReader' object
但是,dill.dump()
和dill.load()
能够无缝保存和恢复对象。
pickle
模块出现问题?dill
保存并重建对象没有任何错误,是否有任何方法可以验证用dill
进行的酸洗和酸洗是否顺利?pickle
失败但dill
成功的可能性如何?答案 0 :(得分:1)
我是dill
的作者。
1)最简单的方法是查看以下文件:https://github.com/uqfoundation/dill/blob/master/dill/_objects.py,其中列出了pickle
可以序列化的内容和dill
可以序列化的内容。
2)您可以尝试dill.copy
和dill.check
和dill.pickles
检查不同级别的酸洗和不酸洗。
3)dill
建立在pickle
的基础上,并通过注册新的序列化函数对其进行了扩充。