【发布时间】:2021-11-14 15:51:26
【问题描述】:
我已经开始了解用于对象序列化和反序列化的 pickle 模块。我知道 pickle.dump 用于将代码存储为位流(序列化),而 pickle.loads 正在将位流返回到 python 对象中。 (反序列化)。但是什么是转储和加载,它们与转储和加载有什么区别?我查看了文档,但我无法区分两者。
pickle.dumps(obj, protocol=None, *, fix_imports=True, buffer_callback=None) ;将对象 obj 的腌制表示返回为字节对象,而不是将其写入文件。
pickle.loads(data, /, *, fix_imports=True, encoding="ASCII", errors="strict", buffers=None) 返回对象的腌制表示数据的重构对象层次结构。 data 必须是字节类对象。
感谢任何帮助, 谢谢
【问题讨论】:
-
_ 而不是将其写入文件。_ 就是它的全部意义所在。
load和dump读取或写入文件(或任何看起来像文件对象的对象)。如果你不想使用文件,loads和dumps使用bytes对象。 “s”代表字符串,可以追溯到 python 2.x,其中字节和字符串大部分是相同的。
标签: python serialization deserialization pickle