什么是序列化?
- 在数据处理过程中需要将内存中的数据或资料保存成文档输出。
- 这些对象可能是字典,列表等等。
- 设计一套规则或协议,把内存中的数据保存到文件中,文件就是一个个字节序列。
- 我们必须把数据额转成字节序列,输出到文件,这个过程叫序列化。
- 反之,从文件的字节序列恢复到内存,就是反序列化。
python内置序列化的几种模块
模块名称 | 描述 | 函数(api) |
---|---|---|
json | 实现python数据类型与通用(json)字符串之间转换 | dumps(),dump(),loads(),load() |
pickle | 实现python数据类型与python中特定的二进制格式转换 | dumps(),dumps(),loads(),loads() |
shelve | 专用于将python数据类型的数据持久化到磁盘,shelve是类似dict的对象 | open() |
Python2.X和Python3.X在用法上的兼容性差异
使用方法的差别
### python2.x
import pickle
pickle.load(f)
import pickle
pickle.load(file,encoding = 'latin1')
https://docs.python.org/3/library/pickle.html