1. 程式人生 > >函式3 函式的序列化和反序列化

函式3 函式的序列化和反序列化

#建一個字典
info = {
'name':'alex',
'age':22 }
#一、#存檔案
f =open("test.text","w")#存檔案
f.write(str(info))
f.close()

#二、取檔案 反序列化
f =open("test.text","r")#存檔案
# data=f.read()
# f.close()
# print(data)

#三、如果要把字串變字典單獨取age值
data=eval(f.read())
print(data['age'])


#四、使用模組序列化,高階版的序列化json+dumps

import json
f =open("test.text","w")#存檔案,序列化

#print(json.dumps(info))
f.write(json.dumps(info))
f.close()

#四-(1)使用模組序列化,序列化兩次json+dumps
import json
info = {
'name':'alex',
'age':22 }
f =open("test.text","w")#存檔案,序列化
#print(json.dumps(info))
f.write(json.dumps(info))
info['age']=21 #修改age
f.write(json.dumps(info))
f.close()



# #五、使用模組高階版的反序列化json+ loads

import json
f =open("test.text","r")#取檔案,反序列化
#print(json.dumps(info))
data=json.loads(f.read())
print(data['age'])
f.close()


#六,處理更加複雜的資料的序列化使用picke+dumps+loads
import pickle
def sayhi(name):
print("hello,",name)
info = {
'name':'alex',
'age':22,
'func':sayhi
}
f =open("test.text","wb")#預設為二進位制需改wb

f.write(pickle.dumps(info))
print(pickle.dumps(info))
f.close()

#七,處理更加複雜的資料的序列化使用picke+dump+loads
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()