一句话说清楚
各个程序,模块之间用于传递消息所定义的方式,类似于文件编码与解码过程,序列化类似于编码过程,反序列化类似解码过程
第二句——序列化与反序列化的方式有json与pickle
第三句——json通用,pickle只能用于python但能穿函数
json序列化与反序列化
json序列化直接序列化文件
import json data = { 'name':"alex", "age":22 } f = open("data.txt","w",encoding="utf-8") json.dump(data,f) f.close()
json序列化用于网络的传输
data = { 'name':"alex", "age":22 } f = open("data.txt","w",encoding="utf-8") f.write(json.dumps(data)) f.close()
直接调用文件的json反序列化方式
import json f = open("data.txt",'r',encoding='utf-8') data = json.load(f) #反序列化 print(data) print(data['age']) f.close()
用于网络传输的json反序列化方式
import json f = open("data.txt",'r',encoding='utf-8') data = json.loads(f.read()) #反序列化 print(data) print(data['age']) f.close()
pickle序列化与反序列化
序列化方式
import pickle def sayhi(name): print("hello",name) data = { 'name':"alex", "age":22, 'func':sayhi } f = open("test",'wb') f.write(pickle.dumps(data))
反序列化方式
import pickle def sayhi(name): print("hello",name) f = open('test','rb') data = pickle.loads(f.read()) print(data['func']("alex"))