一、pickle模块
主要应用于存储数据,序列化成二进制字节流
序列化:把不能直接存储在文件中的数据变得可存储
反序列化:把存储在文件中的数据拿出来恢复成原来的数据类型
1.dumps把任意对象序列化成一个字节流
注:函数和迭代器均可序列化
2.loads把任意字节流反序列化成原来的数据
3.dump把对象序列化写入到file-like object(文件对象)
4.load把file-like object(文件对象)中的内容拿出来,反序列化成原来数据
res = pickle.dumps(lst)
with open('l.txt',mode = 'wb') as fp:
pickle.dump(res,fp)
二、json模块
主要应用于传输数据,序列化成字符串
json格式数据,所有编程语言都能识别,因为本身是字符串
类型有要求:int,float,bool,list,tuple,str,dict,none
1.dumps把任意对象序列化成一个str
2.loads把任意str反序列化成原来的数据
3.dump把对象序列化写入到file-like object(文件对象)
4.load把file-like object(文件对象)中的内容拿出来,反序列化成原来数据
注:json连续dump数据,但是不能连续load数据,是一次性获取所有内容进行反序列化