前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >Python pickle模块:实现Python对象的持久化存储

Python pickle模块:实现Python对象的持久化存储

原创
作者头像
用户8442333
发布2021-11-30 21:13:14
发布2021-11-30 21:13:14
33900
代码可运行
举报
文章被收录于专栏:python知识python知识
运行总次数:0
代码可运行

Python中有个序列化过程叫作 pickle,它能够实现任意对象与文本之间的相互转化,也可以实现任意对象与二进制之间的相互转化。也就是说,pickle 可以实现 Python 对象的存储及恢复。

值得一提的是,pickle 是 python 语言的一个标准模块,安装 python 的同时就已经安装了 pickle 库,因此它不需要再单独安装,使用 import 将其导入到程序中,就可以直接使用。

pickle 模块提供了以下 4 个函数供我们使用:

  1. dumps():将 Python 中的对象序列化成二进制对象,并返回;
  2. loads():读取给定的二进制对象数据,并将其转换为 Python 对象;
  3. dump():将 Python 中的对象序列化成二进制对象,并写入文件;
  4. load():读取指定的序列化数据文件,并返回对象。

pickle.dumps()函数

此函数用于将 Python 对象转为二进制对象,其语法格式如下:

dumps(obj, protocol=None, *, fix_imports=True)

此格式中各个参数的含义为:

  • obj:要转换的 Python 对象;
  • protocol:pickle 的转码协议,取值为 0、1、2、3、4,其中 0、1、2 对应 Python 早期的版本,3 和 4 则对应 Python 3.x 版本及之后的版本。未指定情况下,默认为 3。
  • 其它参数:为了兼容 Python 2.x 版本而保留的参数,Python 3.x 中可以忽略。

【例 1】

代码语言:javascript
代码运行次数:0
复制
import pickletup1 = ('I love Python', {1,2,3}, None)#使用 dumps() 函数将 tup1 转成 p1p1 = pickle.dumps(tup1)print(p1)

输出结果为:

b'\x80\x03X\r\x00\x00\x00I love Pythonq\x00cbuiltins\nset\nq\x01]q\x02(K\x01K\x02K\x03e\x85q\x03Rq\x04N\x87q\x05.'

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • pickle.dumps()函数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档