Python序列化方式:pickle与json探究和应用

Python序列化方式:pickle与json探究和应用

使用场景

在程序运行时,数据一般是是存储在堆或者栈上,如果不进行数据持久化,程序结束时,数据也随机消失。通过写文件和存数据库都可以对数据持久化,但这两种方式并不是在所有场景下都适用。

  1. 先看写文件,如果通过写文件来存储数据,如何存储数据是需要设计下的,诸如用什么符号分隔、正确性能否保证,而其他人想要使用这些数据时,也要非番周折,更不用说使用其他语言来使用这些数据。
  2. 再看使用数据库存储数据,如何设计字段,依然需要推敲。数据库操作需要使用SQL语句或者封装过的数据库操作模块,对于简单的需求来说略显繁琐。而数据库所需空间远比单纯存储文件大,无论是mongodb、mysql都需要安装并进行一定的配置,在数据迁移方面也显得笨重。

对运行时的数据进行简单地保存,可以用序列化的方式。除此之外,当你需要使用另一种语言来处理同一份数据时,使用json序列化,无疑是通常的做法。

如何使用pickle

pickle是python自有的序列化方式,pickle模块实现了用于对Python对象结构进行序列化和反序列化协议。

>>> import pickle
>>> d = {"name":"Taylor","age":"29","gender":"female"}
>>> str = pickle.dumps(d)
>>> print(str)
b'\x80\x03}q\x00(X\x06\x00\x00\x00genderq\x01X\x06\x00\x00\x00femaleq\x02X\x03\x00\x00\x00ageq\x03X\x02\x00\x00\x0029q\x04X\x04\x00\x00\x00nameq\x05X\x06\x00\x00\x00Taylorq\x06u.'

python3取消了cpickle,因此引入pickle后,就可以使用pickle模块了。

首先,我创建了一个字典。接着使用pickle.dumps()函数,将字典d序列化成了二进制格式的数据。

>>> with open("dump","wb") as f:
...   pickle.
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值