Python中使用pickle库进行数据的序列化存储
学习python的话,是不是有时候需要在本地存储一些数据,今天为大家来介绍一种新的实现方式:那就是使用python自带的pickle库。
先上一段代码来看一下pickle的基本使用:
import pickle # pickle的功能:序列化和反序列化obj = {"userName": "小博","job": "软件测试","订阅号": "小博测试成长之路","wx": "xiaobotester"
}
# dumps和loads主要是在内存内操作
a1 = pickle.dumps(obj)
print('a1:', type(a1), a1)
b1 = pickle.loads(a1)
print('b1:', type(b1), b1)# dump和load是从文件内操作
with open("demo.db", "wb") as f:pickle.dump(obj, f) # dump函数没有返回值with open("demo.db", "rb") as f2:b2 = pickle.load(f2)print("b2:", type(b2), b2)
以上代码运行后的输出结果:
a1: <class 'bytes'> b'\x80\x03}q\x00(X\x08\x00\x00\x00userNameq\x01X\x06\x00\x00\x00\xe5\xb0\x8f\xe5\x8d\x9aq\x02X\x03\x00\x00\x00jobq\x03X\x0c\x00\x00\x00\xe8\xbd\xaf\xe4\xbb\xb6\xe6\xb5\x8b\xe8\xaf\x95q\x04X\t\x00\x00\x00\xe8\xae\xa2\xe9\x98\x85\xe5\x8f\xb7q\x05X\x18\x00\x00\x00\xe5\xb0\x8f\xe5\x8d\x9a\xe6\xb5\x8b\xe8\xaf\x95\xe6\x88\x90\xe9\x95\xbf\xe4\xb9\x8b\xe8\xb7\xafq\x06X\x02\x00\x00\x00wxq\x07X\x0c\x00\x00\x00xiaobotesterq\x08u.'
b1: <class 'dict'> {'userName': '小博', 'job': '软件测试', '订阅号': '小博测试成长之路', 'wx': 'xiaobotester'}
b2: <class 'dict'> {'userName': '小博', 'job': '软件测试', '订阅号': '小博测试成长之路', 'wx': 'xiaobotester'}
从上面这段代码运行的结果可以看出,通过pickle序列化存储之后的数据,再次加载出来的时候,还是保留了之前的格式。这个对于我们进行数据处理的时候,方便了很多。
注意事项:
1、pickle只能用于python程序中。(也就是说,将python程序序列化存储的文本文件,用其他语言去解析是会有问题的)
2、在使用的时候,要注意dumps/loads与dump/load的使用区别,前者是在内存中进行操作,后者是在文件中进行操作。
3、pickle是以bytes类型来进行序列化的,dump/dumps方法调用的时候还可以传protocol和fix_imports参数,具体用法可以自行查资料了解一下。
Python中使用pickle库进行数据的序列化存储相关推荐
- python 中的pickle库
序列化:我们把变量从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling,在其他语言中也被称之为serialization,marshalling,flattening等等,都 ...
- python中nlp的库_用于nlp的python中的网站数据清理
python中nlp的库 The most important step of any data-driven project is obtaining quality data. Without t ...
- 利用python中的csv库读写csv文件
利用python中的csv库读写csv文件 python读写csv文件就我知道的方法有:1)利用csv库,2)利用读写txt文件的方式处理,3)利用numpy或pandas库处理 在这篇博客中,博主就 ...
- 【pickle】详解python中的pickle模块(常用函数、示例)
1.序列化.反序列化介绍 序列化:把对象转换为字节序列的过程称为对象的序列化. 反序列化:把字节序列恢复为对象的过程称为对象的反序列化. 2.pickle模块说明 python中的pickle模块实现 ...
- python读取网络端口数据_在Python中从SNMP端口获取数据
我专门尝试使用PySNMP库从python中的SNMP端口读取数据.我有兴趣仅通过此库获取数据.这是因为我正在从NetSNMP迁移到PySNMP. 这是我为NetSNMP编写的工作代码,它实际上为我提 ...
- Python中常用图像处理库
Python中常用图像处理库 文章目录 Python中常用图像处理库 1 OpenCV-Python 2 Numpy 3 matplotlib 4 skimage 5 PIL(Python Imagi ...
- python中nlp的库_单词袋简介以及如何在Python for NLP中对其进行编码
python中nlp的库 by Praveen Dubey 通过Praveen Dubey 单词词汇入门以及如何在Python中为NLP 编写代码的简介 (An introduction to Bag ...
- python中的迭代库
python中的迭代库为itertools,如果需要输出详细,需要使用类型工厂函数,如list,tuple将结果转换 itertools.product:product(A,B) 相当于((x, y) ...
- python应用中调用spark_在python中使用pyspark读写Hive数据操作
1.读Hive表数据 pyspark读取hive数据非常简单,因为它有专门的接口来读取,完全不需要像hbase那样,需要做很多配置,pyspark提供的操作hive的接口,使得程序可以直接使用SQL语 ...
最新文章
- 2010年最火与最冷的IT职业
- Linux 下复制(cp)目录时排除一个或者多个目录的方法
- Android adb你真的会用吗?
- Android之Xposed框架完全使用指南
- 理论修炼之ETCD,高一致性Key-Value服务提供者中的佼佼者
- Reordering the Cows
- 基于SpringCloud实现Shard-Jdbc的分库分表模式,数据库扩容方案
- Java多线程:生命周期,实现与调度
- 机器学习模型部署文章存档
- xml文件和DataTable之间相互转换
- LabVIEW 阵列信号处理
- Visio画图允许两条线交叉的操作
- Excel造测试大量数据
- 绘制一张好看的散点图及pearson和spearman相关性分析的选择
- 如何解决织梦后台上传一篇文章前端展示两篇完全一样的
- AI绘画是什么软件?看完你就知道了
- 华为IT总监离职时给大家写了一封告别信
- 房价是鹤岗2倍多,这座小城有星巴克、沃尔玛和三甲医院
- 疾风之刃鸿蒙炸裂,《疾风之刃》天武僧二觉将开 12.1正式上线
- KVM虚拟化平台搭建+理论