首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >dill与Python的泡菜模块有什么不同?

dill与Python的泡菜模块有什么不同?
EN

Stack Overflow用户
提问于 2019-10-01 22:36:20
回答 1查看 8.1K关注 0票数 10

我的Python3代码中有一个大对象,当尝试用pickle模块对其进行筛选时,会抛出以下错误:

代码语言:javascript
复制
TypeError: cannot serialize '_io.BufferedReader' object

但是,dill.dump()dill.load()能够无缝地保存和恢复对象。

  1. 是什么导致了pickle模块的问题?
  2. 现在没有错误地保存和重新构造对象,是否有任何方法来验证用dill进行的酸洗和去酸洗是否顺利?
  3. 怎么可能出现pickle失败,但dill成功?H 215G 216/code>
EN

回答 1

Stack Overflow用户

发布于 2019-10-02 00:25:13

我是dill的作者。

1)最简单的方法是查看这个文件:https://github.com/uqfoundation/dill/blob/master/dill/_objects.py,它列出了pickle可以序列化什么,dill可以序列化什么。

2)您可以尝试dill.copydill.checkdill.pickles来检查不同级别的酸洗和不腌渍。dill还包括用于检测和诊断dill.detectdill.pointers中的序列化问题的实用程序。

3) dill建立在pickle的基础上,通过注册新的序列化函数对其进行扩展。

4) dill包含序列化变体,使用户能够从不同的对象依赖序列化策略(在dill.settings中)中选择--包括源代码提取和dill.source对象重构(以及stdlib inspect模块的扩展)。

票数 40
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58193119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档