序列化与反序列化

一句话说清楚

各个程序,模块之间用于传递消息所定义的方式,类似于文件编码与解码过程,序列化类似于编码过程,反序列化类似解码过程

第二句——序列化与反序列化的方式有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"))

  







原文地址:https://www.cnblogs.com/fengdao/p/6057486.html