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

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

Patricia Arquette
发布: 2024-11-29 01:05:12
原创
936 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板