一.概念
序列化:将数据从内存持久化保存到硬盘的过程
反序列化:将数据从硬盘加载到内存的过程
二.json
1.json模块
*将对象转换成字符串。但并不是所有对象都可以转换成字符串
*可以在不同平台之间传递数据
python对象与json字符串的关系
注:1.若一个自定义对象,默认无法转换成json字符串,则 需要手动指定JSONEncoder。
2.将一个json串重新转成对象,这个对象里的方法就无法使用了。
3.若是在类型之外,则会报错。
2.导入json模块
语法:import json
3.json里将数据持久的两种方法:
dumps:将数据转换成为json字符串,不会将数据保存到文件
demp:将数据转换成json字符串的同时写入文件
json.dump(数据内容,文件名B)#这里的数据内容可以是任意类型(将该数据内容转换成json字符串,并且写入文件B中)
4.json反序列化的两种方法:
loads:将json字符串加载成为python里的数据
load:读取文件,把读取的内容加载成为python里的数据
变量C=json.load(open(文件名,'w'))#可以将文件中的json字符串转成字符串原类型
三.pickle模块
1.概念
将python里任意的对象转换成二进制。
原封不动的保存。
2.序列化和反序列化
序列化: dump和dumps
反序列化:load和loads
c=pickle.load(open(文件名,'rb'))
与json使用方式相似
3.与json的区别
pivkle用来将数据原封不动的转换成二进制。都是这个二进制只能在python中识别
json只能保存不能星系,作用是用来在不同的平台里传递数据。json里存储的数据都是基本的数据类型。