大聊Python----json与pickle数据序列化
用于序列化的两个模块
☆json,用于字符串和python数据类型间进行转换
☆pickle,用于python特有的类型和python的数据类型间进行转换
Json模块提供了四个功能:dumps、dump、loads、load
那我们先来看看json怎么使用的吧!
关于序列化操作,看看屌丝是怎么写的!
##序列化操作## info = { "name":"sutaoyu", "age" :"25" } f = open("text.text","w") f.write(str(info)) f.close() ##反序列化操作## f = open("text.text","r") data = eval(f.read()) print(data["age"]) f.close()
text.text文件里的内容为:
{'name': 'sutaoyu', 'age': '25'}
反序列化操作的结果为:
25
下面看看大神是怎么装逼的!
##序列化## import json info = { "name":"sutaoyu", "age" :"25" } f = open("text.text","w") f.write( json.dumps(info) ) f.close() ##反序列化## import json f = open("text.text","r") data = json.loads(f.read()) print(data["age"]) f.close()
反序列化操作的结果为:
25
是不是觉得程序很简单啊?
那就玩个大的!pickle模块!
pickle模块提供了四个功能:dumps、dump、loads、load
## 序列化 ## import pickle def sayhi(name): print("hello,",name) info = { "name":"sutaoyu", "age" :"25", "func":sayhi } f = open("text.text","wb") f.write( pickle.dumps(info) ) # f.write(pickle.dumps(info)) == pickle.dump(info,f) f.close() ## 反序列化 ## import pickle def sayhi(name): print("hello,",name) f = open("text.text","rb") # rb 处理的是 二进制 ,r 处理的是 字符串 data = pickle.loads(f.read()) # data = pickle.loads(f.read()) == pickle.load(f)
# print(data)
print(data["age"])
print(data["func"]("Alex"))
f.close()
反序列化得出的结果为:
25
hello, Alex
None