1.终于学到json了,简直是万分期待
2.json序列化:json.dumps()
json反序列化:json.loads()
json对字典、列表、字符串起作用,可以在不同语言间进行交互。
pickle只支持python语言,Java只认识json,一般是dump一次,对应的load一次
3.(1)使用json将字典的一个内容存入文本中,
import json
info={
'name':'alex',
'age':22
}
f=open("test.text","w")
print(json.dumps(info))
f.write(json.dumps(info))
f.close()
运行后,字典中的内容已经写入到test.text文本中,这时如果要读取改文本中的内容,就要用到反序列化:
import json
f=open("test.text","r")
data=json.loads(f.read())
print(data['age'])
这时读取到的age为22
(2)如果在字典中有函数的内存地址,这时就要用到pickle,其他与json一样
import pickle
def sayhi(name):
print("hello",name)
info={
'name':'alex',
'age':22,
'func':sayhi
}
f=open("test.text","wb")
print(pickle.dumps(info))
f.write(pickle.dumps(info))
f.close()
反序列为:
import pickle
def sayhi(name):
print("hello", name)
print("hello2",name)
f=open("test.text","rb")
data=pickle.loads(f.read())
print(data['func']("wu"))
(3)而在pickle的序列中,f.write(pickle.dumps(info))与pickle.dump(info,f)是一样的,那么也可以写成如下形式
import pickle
def sayhi(name):
print("hello",name)
info={
'name':'alex',
'age':22,
'func':sayhi
}
f=open("test.text","wb")
pickle.dump(info,f) #与f.write(pickle.dumps(info))一样
f.close()
同理反序列化也一样,
import pickle
def sayhi(name):
print("hello", name)
print("hello2",name)
f=open("test.text","rb")
data=pickle.load(f) #data=pickle.loads(f.read())
print(data['func']("wu"))
好的,完毕