JSON (JavaScript Object Notation)是一種使用廣泛的輕量數據格式,Python標准庫中的json模塊提供了一種簡單的方法來編碼和解碼JSON格式的數據。用於完成字符串和python數據類型間進行轉換。
json模塊基本函數
json.dumps():把Python數據類型轉換成JSON字符串
json.loads():把JSON字符串轉換成Python數據類型
json.dump():把Python數據類型轉換成JSON字符串並存儲在文件中
json.load():把文件打開並將JSON字符串轉換成Python數據類型
說明:使用 JSON 函數需要導入 json 庫:import json
json模塊使用實例
1、將python中的字典轉換為JSON字符串。說明:轉換后的JSON字符串都是放在雙引號中。
>>> import json >>> student_dic = {'name':'ACME', 'age':'18', 'grade' : '90'} >>> json_data = json.dumps(student_dic) >>> type(json_data) <class 'str'> >>> print(json_data) {"name": "ACME", "age": "18", "grade": "90"}
2、將JSON字符串轉換為Python字典。說明:字符串必須放在雙引號中,否則會報錯。
>>> tran_data = json.loads(json_data) >>> type(tran_data) <class 'dict'> >>> print(tran_data) {'name': 'ACME', 'age': '18', 'grade': '90'}
3、將Python字典類型數據寫入json文件中
>>> import json >>> student_dic = {'name':'ACME', 'age':'18', 'grade' : '90'} >>> with open('json.txt','w') as f: ... json.dump(student_dic,f) ... >>>
查看json.txt文件內容,如下:
d:\pycharm>type json.txt {"name": "ACME", "age": "18", "grade": "90"}
說明:type為dos命令,作用是查看文件內容。
4、讀取JSON文件,並把字符串變換為Python數據字典
>>> with open('json.txt','r') as fr: ... student_dict = json.load(fr) ... >>> type(student_dict) <class 'dict'> >>> print(student_dict) {'name': 'ACME', 'age': '18', 'grade': '90'}
5、將Python字典類型轉換為JSON字符串,並以指定格式輸出。
>>> import json >>> student_dic = {'name':'ACME', 'age':'18', 'grade' : '90'} >>> json_data = json.dumps(student_dic,indent=4) >>> print(json_data) { "name": "ACME", "age": "18", "grade": "90" }
6、將Python字典類型轉換為JSON字符串,並按鍵排序輸出。
>>> json_data = json.dumps(student_dic,sort_keys=True,indent=4) >>> print(json_data) { "age": "18", "grade": "90", "name": "ACME" }
7、Python基本類型轉換為JSON字符串的特殊變化。
>>> spec_value_dict = {'a':True,'b':False,'c':None} >>> json_data = json.dumps(spec_value_dict,indent=4) >>> print(json_data) { "a": true, "b": false, "c": null } >>>
說明:Python中的True轉換為true,False轉化為false,None轉換為null。使用loads將JSON類型轉換后還原,如下:
>>> json.loads(json_data) {'a': True, 'b': False, 'c': None}
小結
本文僅是描述了Python基本類型與JSON字符串間轉換的基本使用方法。對於JSON編解碼更多功能使用可以閱讀官方文檔獲取:https://docs.python.org/3/library/json.html