python学习之路(json & pickle 模块 ---序列化,反序列化)

来源:互联网 发布:战舰世界 战列舰 知乎 编辑:程序博客网 时间:2024/06/14 13:56

python学习之路(json & pickle 模块)

json 只能处理简单的数据类型,不能处理函数什么的。
json主要是处理不同语言之间的调用。

程序要只 序列化(dump)和反序列化(load)一次。

json序列化

import jsoninfo = {    'name':'tr',    'age':'23'}f = open('text.txt','w')print(json.dumps(info)) # {"name": "tr", "age": "23"}print(type(json.dumps(info))) # <class 'str'>f.write(json.dumps(info)) # 序列化f.close()

json反序列化

import jsonf = open('text.txt','r')a = json.loads(f.read()) # 反序列化print(a.get('age')) # 23

pickle 序列化

可以对函数等高级数据类型进行序列化

import pickledef seyhello(name):    print('hello,',name)info = {    'name':'tr',    'age':'23',    'welcome': seyhello}f = open('text.txt','wb') # 数据类型是byteprint(pickle.dumps(info)) # b'\x80\x03}q\x00(X\x04。。。。。'print(type(pickle.dumps(info))) # <class 'bytes'>f.write(pickle.dumps(info)) # 序列化# pickle.dump(info,f) 序列化也可以这么写,更简单。f.close()

pickle 反序列化

import pickledef seyhello(name):    print('hello,',name)f = open('text.txt','rb')a = pickle.loads(f.read()) # 反序列化# pickle.load(f) 同上,是不是更简单print(a.get('welcome')('tr')) # hello, tr 
阅读全文
0 0
原创粉丝点击