python---Json


概念

      序列化(Serialization):將對象的狀態信息轉換為可以存儲或可以通過網絡傳輸的過程,傳輸的格式可以是JSON,XML等。反序列化就是從存儲區域(JSON,XML)讀取反序列化對象的狀態,重新創建該對象。

  JSON(Java Script Object Notation):一種輕量級數據交互格式,相對於XML而言更簡單,也易於閱讀和編寫,機器也方便解析和生成,Json是JavaScript中的一個子集。

  python2.6版本開始加入了JSON模塊,python的json模塊序列化與反序列化的過程分別是encoding和decoding。

  • encoding:把一個python對象編碼轉換成Json字符串。
  • decoding:把json格式字符串編碼轉換成python對象。

具體應用

json提供四個功能:dumps, dump, loads, load

1 # dumps功能
2 # 將數據通過特殊的形式轉換為所有程序語言都認識的字符串
3 >>> import json
4 >>> data = ['aa', 'bb', 'cc']
5 >>> j_str = json.dumps(data)
6 >>> j_str
7 '["aa", "bb", "cc"]'
1 # loads功能
2 # 將json編碼的字符串再轉換為python的數據結構
3 >>> j_str
4 '["aa", "bb", "cc"]'
5 >>> mes = json.loads(j_str)
6 >>> mes
7 ['aa', 'bb', 'cc']
1 # dump功能
2 # 將數據通過特殊的形式轉換為所有程序語言都認識的字符串,並寫入文件
3 with open('D:/tmp.json', 'w') as f:
4     json.dump(data, f)
1 # load功能
2 # 從數據文件中讀取數據,並將json編碼的字符串轉換為python的數據結構
3 with open('D:/tmp.json', 'r') as f:
4     data = json.load(f)

說明

json編碼支持的基本類型有:None, bool, int, float, string, list, tuple, dict.

  對於字典,json會假設key是字符串(字典中的任何非字符串key都會在編碼時轉換為字符串),要符合JSON規范,應該只對python列表和字典進行編碼。此外,在WEB應用中,把最頂層對象定義為字典是一種標准做法。

  json編碼的格式幾乎和python語法一致,略有不同的是:True會被映射為true,False會被映射為false,None會被映射為null,元組()會被映射為列表[],因為其他語言沒有元組的概念,只有數組,也就是列表。

1 >>> import json
2 >>> data = {'a':True, 'b':False, 'c':None, 'd':(1,2), 1:'abc'}
3 >>> j_str = json.dumps(data)
4 >>> j_str
5 '{"a": true, "c": null, "d": [1, 2], "b": false, "1": "abc"}'

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM