pickle — Python 对象序列化
python 是一种广泛使用的通用高级编程语言。在本文中,我们将学习使用 pickle 模块在 Python 中进行 pickling 和 unpickling。Python Pickle 模块
pickle 模块用于实现二进制协议,用于序列化和反序列化 Python 对象结构。
- Pickling:这是一个将 Python 对象层次结构转换为字节流的过程。
- Unpickling:它是 Pickling 过程的反面,其中字节流被转换为对象层次结构。
模块接口
- dumps() – 调用此函数以序列化对象层次结构。
- loads() – 调用此函数以反序列化数据流。
pickle 模块提供的常量
- 泡菜。
HIGHEST_PROTOCOL 这是一个整数值,表示可用的最高协议版本。这被视为传递给函数 dump()、dumps() 的协议值。 - 泡菜。
DEFAULT_PROTOCOL 这是一个整数值,表示用于 pickling 的默认协议,其值可能小于最高协议的值。
pickle 模块提供的函数
pickle.dump(obj, file, protocol = None, *, fix_imports = True)
此函数等效于 Pickler(file, protocol).dump(obj)。这用于将 obj 的腌制表示写入打开的文件对象文件。
可选的 protocol 参数是一个整数,它告诉 pickler 使用给定的协议。支持的协议为 0 到 HIGHEST_PROTOCOL。如果未指定,则默认值为 DEFAULT_PROTOCOL。如果指定了负数,则选择 HIGHEST_PROTOCOL。
如果 fix_imports 为 true 且 protocol 小于 3,则 pickle 将尝试将新的 Python 3 名称映射到 Python 2 中使用的旧模块名称,以便 pickle 数据流可以使用 Python 读取
示例 :代码定义一个 类并创建存储在列表中的实例。它使用 模块来序列化这些实例并将它们写入对象 。 SimpleObject
pickle
io.StringIO