json

时间:2017-01-07 19:13:00   收藏:0   阅读:187


#json序列化,只能处理简单的数据类型,如:字典、列表、字符串,类和函数等数据类型过于复杂,不支持序列化
import json

def sayhi(name):
print(‘hello,‘, name)

info = {
‘name‘: ‘whitesky‘,
‘age‘: 25,
‘func‘: sayhi
}

f = open(‘test.txt‘, ‘w‘)
# f.write(str(info))
f.write(json.dumps(info))
f.close()

#json反序列化

f = open(‘test.txt‘, ‘r‘)
data = json.loads(f.read())
print(data[‘func‘])


#处理复杂数据类型(函数等)的方法:pickle(只支持python,不支持Java(支持json))
import pickle

def sayhi(name):
print(‘hello,‘, name)
info = {
‘name‘: ‘whitesky‘,
‘age‘: 25,
‘func‘: sayhi
}

f = open(‘test.txt‘, ‘wb‘) #pickle序列化要带b
f.write(pickle.dumps(info)) #相当于 pickle._dump(info,f)



#pickle反序列化

f = open(‘test.txt‘, ‘rb‘)
data = pickle.loads(f.read()) # 相当于 pickle.load(f)

print(data[‘func‘])



f.close()


#注意:写程序序列化时要记住只dump一次,只load一次(py3中dump多次,再load时会出错,py2中正常),如果需要存储多个状态,就dump成多个文件

原文:http://www.cnblogs.com/yum777/p/6259910.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!