您的位置:首页 > 编程语言 > Python开发

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

2017-12-19 23:29 519 查看

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

json 只能处理简单的数据类型,不能处理函数什么的。

json主要是处理不同语言之间的调用。

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

json序列化

import json

info = {
'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 json

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


pickle 序列化

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

import pickle

def seyhello(name):
print('hello,',name)
info = {
'name':'tr',
'age':'23',
'welcome': seyhello
}

f = open('text.txt','wb') # 数据类型是byte
print(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 pickle

def 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: