序列化与反序列化
一句话说清楚
各个程序,模块之间用于传递消息所定义的方式,类似于文件编码与解码过程,序列化类似于编码过程,反序列化类似解码过程
第二句——序列化与反序列化的方式有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"))
 
                    
                     
                    
                 
                    
                
 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号