python--json与pickle序列化
Posted wangzihong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python--json与pickle序列化相关的知识,希望对你有一定的参考价值。
json & pickle 模块
用于序列化的两个模块
- json,用于字符串 和 python数据类型间进行转换
- pickle,用于python特有的类型 和 python的数据类型间进行转换
Json模块提供了四个功能:dumps、dump、loads、load
pickle模块提供了四个功能:dumps、dump、loads、load
#json只能处理简单的数据类型 可以和其它语言进行交互 #json不同平台数据处理进行交互 #用json实现存入数据和读取数据 #序列化 存入数据 info = { ‘name‘:‘python‘, ‘age‘:30 } import json f = open("test",‘w‘) # f.write(str(info)) #str变为字符串 f.write(json.dumps(info)) #反序列化 读取数据 import json f = open("test",‘r‘) data = json.loads(f.read()) print(data["age"]) #pickle 处理复杂的 可以序列化所有的数据类型 #序列化 import pickle def saihi(name): print("hello",name) info = { ‘name‘:‘python‘, ‘age‘:30, ‘func‘:saihi } f = open("test",‘wb‘) # f.write(str(info)) #str变为字符串 f.write(pickle.dumps(info)) #反序列化 import pickle def saihi(name): print("hello",name) print("hello1",name) f = open("test",‘rb‘) data = pickle.loads(f.read()) print(data["func"]("python")) #pickle 中dump 同dumps实现效果一样 import pickle def saihi(name): print("hello",name) info = { ‘name‘:‘python‘, ‘age‘:30, ‘func‘:saihi } f = open("test",‘wb‘) pickle.dump(info,f) f.close() #pickle中load import pickle def saihi(name): print("hello",name) print("hello1",name) f = open("test",‘rb‘) data = pickle.load(f) #序列化 用json dump两次 import json info = { ‘name‘:‘python‘, ‘age‘:30, } f = open("test",‘w‘) f.write(json.dumps(info)) info[‘age‘] = 22 f.write(json.dumps(info)) f.close() #注:只dump一次load一次 如虚拟机中快照
以上是关于python--json与pickle序列化的主要内容,如果未能解决你的问题,请参考以下文章