1. 程式人生 > >json and pickie 序列化

json and pickie 序列化

func log isp lap -c pla 處理 使用 保存

  • json只能用於簡單的數據類型,例如:字典啊,列表啊,字符串之類的,無法處理復雜的,例如帶有函數的
  • json適用於所有的開發語言
  • dumps與loads只對應使用一次,若dumps多次,則loads出錯

  • import json json.dumps() and json.loads()
技術分享圖片
import json

info = {
    "name":"alex",
    "age": 23
}
f = open("test.txt","w",encoding="utf-8")
f.write(json.dumps(info))
f.close()
test1序列化
技術分享圖片
import json

f = open("test.txt","r",encoding="utf-8")
data = json.loads(f.read())
print(data)
test1反序列化
  • import json json.dump() and json.load()
技術分享圖片
import json

info = {
    "name":"alex",
    "age": 23
}
f = open("test.txt","w",encoding="utf-8")
json.dump(info,f) #相當於f.write(json.dumps(info))
f.close()
test2序列化 技術分享圖片
import json

f = open("test.txt","r",encoding="utf-8")
data = json.load(f)#相當於data = json.loads(f.read())
print(data)
f.close()
test2反序列化
  • import pickle 處理復雜類型:只適用於python
技術分享圖片
import pickle

def func(name):
    print("name",name)
info = {
    "name":"alex",
    "age": 23,
    
"function":func } f = open("test.txt","wb") f.write(pickle.dumps(info)) f.close()
test3序列化 技術分享圖片
import pickle
def func(name):
    print("name",name)
    print("這裏只保存了對應函數的名稱,有相應的名稱則能使用,裏面的內容可以不同")

f = open("test.txt","rb")
data = pickle.loads(f.read())
print(data)
f.close()
test3反序列化

json and pickie 序列化