標籤:載入 方式 rip 輸出 輕量 通過 usr int Object Storage Service
一.json模組序列化:把一個對象的形態改變一下,使他能夠存放在檔案中,或者在網路上傳輸,序列化也叫持久化,是把Object Storage Service到永久介質中,這樣就不會因為掉電而丟失。JSON (JavaScript Object Notation) 是一種輕量級的資料交換格式,json用於字串和python的資料類型進行轉換,json模組提供了四個功能:dumps、dump、loads、load
json.dumps和json.loads執行個體:
1 #!/usr/bin/python32 import json3 data = {‘name‘:‘JieSen‘,‘height‘:175,‘weight‘:‘68KG‘}4 #dumps到字串5 json_str = json.dumps(data)6 print(‘dumps到字串:‘,json_str,‘類型:‘,type(json_str))7 #loads回來8 json_dict = json.loads(json_str)9 print(‘loads回來:‘,json_dict,‘類型:‘,type(json_dict))
輸出:dumps到字串: {"name": "JieSen", "height": 175, "weight": "68KG"} 類型: <class ‘str‘>loads回來: {‘name‘: ‘JieSen‘, ‘height‘: 175, ‘weight‘: ‘68KG‘} 類型: <class ‘dict‘>
如果處理的是檔案,而不是字串,可以使用json.dump和json.load進行編碼和解碼。例如:
1 #!/usr/bin/python32 import json3 with open(‘data_json.txt‘,‘w+‘,encoding=‘utf-8‘) as f:4 json.dump(data,f)5 with open(‘data_json.txt‘,‘r‘) as f:6 data_r = json.load(f)7 print(data_r)
輸出:{‘name‘:‘JieSen‘,‘height‘:175,‘weight‘:‘68KG‘}
二.pickle模組pickle序列化對象是一個二進位位元組,以便將一個檔案儲存體儲存到檔案或者通過網路傳輸。
pickle.dump和pickle.load執行個體:
1 #!/use/bin/python3 2 import pickle 3 data = {‘k1‘:1,‘k2‘:2} 4 #以二進位方式開啟一個檔案並將資料dump儲存到檔案裡面 5 with open(‘pickle_data.txt‘,‘wb‘) as f: 6 pickle.dump(data,f) 7 #以二進位讀取方式開啟檔案並load載入 8 with open(‘pickle_data.txt‘,‘rb‘) as f: 9 fb = pickle.load(f)10 print(fb)
輸出:
{‘k1‘: 1, ‘k2‘: 2}
如果處理的不是檔案,可以使用pickle.dumps和pickle.loads,例如:
data = {‘name‘:‘JieSen‘,‘height‘:175,‘weight‘:‘68KG‘}#轉換為一個位元組流對象pickle_byte = pickle.dumps(data)print(pickle_byte,‘格式:‘,type(pickle_byte))#從位元組流中恢複對象pickle_dict = pickle.loads(pickle_byte)print(pickle_dict,‘格式:‘,type(pickle_dict))
輸出:
b‘\x80\x03}q\x00(X\x04\x00\x00\x00nameq\x01X\x06\x00\x00\x00JieSenq\x02X\x06\x00\x00\x00heightq\x03K\xafX\x06\x00\x00\x00weightq\x04X\x04\x00\x00\x0068KGq\x05u.‘ 格式: <class ‘bytes‘>
{‘name‘: ‘JieSen‘, ‘height‘: 175, ‘weight‘: ‘68KG‘} 格式: <class ‘dict‘>
總結:
1.pickle序列化的是位元組,而json序列化的是字元。
2.json.dump,json.load和pickle.dump,pickle.road處理的都是檔案。
days-json和pickle序列化