Python语言有个专门搞序列化的模块,pickle。用pickle序列化的基本模板如下:
import pickle
file_name = 'Pickle_name.txt'
dic = { 0:1 , 2:4}
with open(file_name,'wb') as f:
f.write(pickle.dumps(dic))
with open(file_name,'rb') as f:
dic = pickle.loads(f.read())
print(dic)
dic = { 2:9 , 4:1}
with open(file_name,'wb') as f:
pickle.dump(dic,f)
with open(file_name,'rb') as f:
dic = pickle.load(f)
print(dic)
pickle模块中的dumps()表示序列化,loads()表示反序列化。这两个方法在遇到file-like object时,可以简化为dump()和load(),简化方法如上。pickle的这些方法实际上是将Python对象序列化为bytes,再反序列化回Python对象,所以打开文件的模式也要是“wb”和“rb”。
Python语言特定的序列化模块是pickle
,但如果要把序列化搞得更通用、更符合Web标准,就可以使用json
模块。
import json
file_name = 'Json.json'
dic = { 0:1 , 2:4}
with open(file_name,'w') as f:
f.write(json.dumps(dic))
with open(file_name,'r') as f:
dic = json.loads(f.read())
print(dic)
dic = { 2:9 , 4:1}
with open(file_name,'w') as f:
json.dump(dic,f)
with open(file_name,'r') as f:
dic = json.load(f)
print(dic)
大同小异。不同点在于打开文件的模式是“w”和“r”。