Python pickle模块:实现Python对象的持久化存储
2023-03-20 15:28:35 时间
Python中有个序列化过程叫作 pickle,它能够实现任意对象与文本之间的相互转化,也可以实现任意对象与二进制之间的相互转化。也就是说,pickle 可以实现 Python 对象的存储及恢复。
值得一提的是,pickle 是 python 语言的一个标准模块,安装 python 的同时就已经安装了 pickle 库,因此它不需要再单独安装,使用 import 将其导入到程序中,就可以直接使用。
pickle 模块提供了以下 4 个函数供我们使用:
- dumps():将 Python 中的对象序列化成二进制对象,并返回;
- loads():读取给定的二进制对象数据,并将其转换为 Python 对象;
- dump():将 Python 中的对象序列化成二进制对象,并写入文件;
- 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】
import pickletup1 = ('I love Python', {1,2,3}, None)#使用 dumps() 函数将 tup1 转成 p1p1 = pickle.dumps(tup1)print(p1)
输出结果为:
b'x80x03X x00x00x00I love Pythonqx00cbuiltins set qx01]qx02(Kx01Kx02Kx03ex85qx03Rqx04Nx87qx05.'
相关文章
- 两月不到,如何从新手成为谷歌认证TensorFlow开发者?
- 15年!NumPy论文终出炉,还登上了Nature
- 一脸懵逼,面试官:过滤器和拦截器有啥区别?
- 后端编程语言之争:谁将成为2021年最好的后端编程语言?
- VS Code是否已成为Python的最佳IDE?
- PyTorch开发新药?哈佛出品,10行代码训练“药神”模型
- 2021编程语言「后浪」趋势预测:JavaScript、Python热度不减,但崛起最快的却是它
- 三分钟看懂Python和Java的区别
- 1行代码搞定Latex公式编写,这个4.6M的Python小插件,写论文必备
- PyCharm vs VSCode,是时候改变你的 IDE 了!
- 一个用于大规模连续测试的开源解决方案
- 学C语言好还是Python好?
- Python人工智能速成班泛滥 专家:小学生都能学
- 调包侠神器2.0发布,Python机器学习模型搭建只需要几行代码
- 五大代码异味:你需要提高警惕了!
- 分分钟甩Word几条街,Python编辑公式竟可以如此简单
- IEEE Spectrum 评估的最流行语言是 Python
- Python继续霸榜,上古语言Cobol获关注,IEEE2020编程语言榜单揭晓
- 蚂蚁王益:Go+ 可有效补全 Python 的不足
- 2020年优秀的Python代码编辑器