days-json和pickle序列化

來源:互聯網
上載者:User

標籤:載入   方式   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序列化

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.