学习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库进行数据的序列化存储相关推荐

  1. python 中的pickle库

    序列化:我们把变量从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling,在其他语言中也被称之为serialization,marshalling,flattening等等,都 ...

  2. python中nlp的库_用于nlp的python中的网站数据清理

    python中nlp的库 The most important step of any data-driven project is obtaining quality data. Without t ...

  3. 利用python中的csv库读写csv文件

    利用python中的csv库读写csv文件 python读写csv文件就我知道的方法有:1)利用csv库,2)利用读写txt文件的方式处理,3)利用numpy或pandas库处理 在这篇博客中,博主就 ...

  4. 【pickle】详解python中的pickle模块(常用函数、示例)

    1.序列化.反序列化介绍 序列化:把对象转换为字节序列的过程称为对象的序列化. 反序列化:把字节序列恢复为对象的过程称为对象的反序列化. 2.pickle模块说明 python中的pickle模块实现 ...

  5. python读取网络端口数据_在Python中从SNMP端口获取数据

    我专门尝试使用PySNMP库从python中的SNMP端口读取数据.我有兴趣仅通过此库获取数据.这是因为我正在从NetSNMP迁移到PySNMP. 这是我为NetSNMP编写的工作代码,它实际上为我提 ...

  6. Python中常用图像处理库

    Python中常用图像处理库 文章目录 Python中常用图像处理库 1 OpenCV-Python 2 Numpy 3 matplotlib 4 skimage 5 PIL(Python Imagi ...

  7. python中nlp的库_单词袋简介以及如何在Python for NLP中对其进行编码

    python中nlp的库 by Praveen Dubey 通过Praveen Dubey 单词词汇入门以及如何在Python中为NLP 编写代码的简介 (An introduction to Bag ...

  8. python中的迭代库

    python中的迭代库为itertools,如果需要输出详细,需要使用类型工厂函数,如list,tuple将结果转换 itertools.product:product(A,B) 相当于((x, y) ...

  9. python应用中调用spark_在python中使用pyspark读写Hive数据操作

    1.读Hive表数据 pyspark读取hive数据非常简单,因为它有专门的接口来读取,完全不需要像hbase那样,需要做很多配置,pyspark提供的操作hive的接口,使得程序可以直接使用SQL语 ...

最新文章

  1. 2010年最火与最冷的IT职业
  2. Linux 下复制(cp)目录时排除一个或者多个目录的方法
  3. Android adb你真的会用吗?
  4. Android之Xposed框架完全使用指南
  5. 理论修炼之ETCD,高一致性Key-Value服务提供者中的佼佼者
  6. Reordering the Cows
  7. 基于SpringCloud实现Shard-Jdbc的分库分表模式,数据库扩容方案
  8. Java多线程:生命周期,实现与调度
  9. 机器学习模型部署文章存档
  10. xml文件和DataTable之间相互转换
  11. LabVIEW 阵列信号处理
  12. Visio画图允许两条线交叉的操作
  13. Excel造测试大量数据
  14. 绘制一张好看的散点图及pearson和spearman相关性分析的选择
  15. 如何解决织梦后台上传一篇文章前端展示两篇完全一样的
  16. AI绘画是什么软件?看完你就知道了
  17. 华为IT总监离职时给大家写了一封告别信
  18. 房价是鹤岗2倍多,这座小城有星巴克、沃尔玛和三甲医院
  19. 疾风之刃鸿蒙炸裂,《疾风之刃》天武僧二觉将开 12.1正式上线
  20. KVM虚拟化平台搭建+理论

热门文章

  1. fstat、stat和lstat用法
  2. 温度上报实时监控项目——客户端
  3. Android input 系统InputReader,InputDispatcher线程实例--UI死掉
  4. 关于数学计算机手抄报简单的,简单漂亮的数学手抄报图片大全
  5. pc屏幕与手机屏幕互相分享(幕享)
  6. doug lea java并发_Doug Lea
  7. 部署SSM项目到阿里云服务器ECS
  8. 笔记本电脑突然断网,intel wireless AC 9462驱动无法启动
  9. ios系统怎么录屏?这个方法可以尝试下
  10. python软件要钱吗-python 收费么