首页 >后端开发 >Python教程 >Python的Pickle模块如何序列化和反序列化对象?

Python的Pickle模块如何序列化和反序列化对象?

Patricia Arquette
Patricia Arquette原创
2024-11-29 01:05:121011浏览

How Does Python's Pickle Module Serialize and Deserialize Objects?

了解 Pickle 进行对象序列化:保留 Python 对象

Python 中的 Pickle 提供了一种便捷的机制,可以将 Python 对象序列化为二进制格式进行存储或传输。使用pickle,您可以将复杂的数据结构(包括字典)无缝保存到文件或类似字节的对象中。

字典的序列化

写入新文件并使用 pickle 将字典转储到其中,请按照以下步骤操作:

import pickle

a = {'hello': 'world'}

with open('filename.pickle', 'wb') as handle:
    pickle.dump(a, handle, protocol=pickle.HIGHEST_PROTOCOL)

pickle.dump() 方法序列化字典'a' 到二进制文件 'filename.pickle' 中。协议参数指定序列化兼容性级别。

反序列化

从文件中检索序列化字典:

with open('filename.pickle', 'rb') as handle:
    b = pickle.load(handle)

pickle。 load()方法读取二进制数据并重建原始字典'b'.

超越字典的多功能性

Pickle 不仅限于序列化字典。它可以处理各种Python对象,包括自定义类的实例和复杂的数据结构。例如:

import datetime
today = datetime.datetime.now()
a = [{'hello': 'world'}, 1, 2.3333, 4, True, "x",
     ("y", [[["z"], "y"], "x"]), {'today', today}]

限制

虽然pickle用途广泛,但有些对象无法pickle。这包括依赖系统资源的对象,例如打开的文件句柄。

以上是Python的Pickle模块如何序列化和反序列化对象?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn