json序列化

扫码查看
#将一个字典写入文件
info={
"name":"shimeng",
"age":35
}

f = open('test.txt',"w")
f.write(str(info))
f.close()

#读取文件数据
f = open('test.txt','r')
data = f.read() #读出来得数据是一个字符串
f.close()
print(data)
data1 = eval(data) #又将字符串转换成字典
print(data1['age'])

标准序列化
简单数据:
import json        #json只能用于简单数据类型进行转换;主要用于几种语言平台之间的简单数据进行交互;如果是包含复杂数据,则需要用pickle,用法和json完全一样。

info={
"name":"shimeng",
"age":35
}

f = open('test.txt',"w")
print(info)
print(json.dumps(info))
f.write(json.dumps(info))
f.close()

f = open('test.txt','r')
data = json.loads(f.read())
f.close()
print(data)
print(data['age'])

复杂数据,数据带有函数名:
import pickle    #只能在python下使用
def sayh(name):
print("in the sayh")

info={
"name":"shimeng",
"age":35,
"func":sayh    #复杂数据
}

# f = open('test.txt',"wb")
# print(info)
# print(pickle.dumps(info))    
# f.write(pickle.dumps(info))    #也可以直接用pickle.dump(info,f)
# f.close()

f = open('test.txt','rb')
data = pickle.loads(f.read())    #也可以直接用data = pickle.load(f)
f.close()
print(data)
print(data['age'])


12-16 23:51
查看更多