JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,通常用於前後端數據的傳輸和存儲。在Python中使用JSON模塊對JSON數據進行解析和操作非常方便。本文將深入介紹Python JSON模塊的基礎知識,幫助讀者更好地理解和使用JSON數據。
一、JSON模塊簡介
Python內置的JSON模塊提供了JSON數據的解析和序列化功能,可以方便地將JSON字元串轉換為Python對象以及將Python對象轉換為JSON字元串。JSON模塊提供了兩個主要的函數:`json.dumps()`和`json.loads()`。
`json.dumps()`函數用於將Python對象轉換為JSON字元串,而`json.loads()`函數則用於將JSON字元串轉換為Python對象。該模塊還提供了一些其他的函數,例如`json.dump()`和`json.load()`,這些函數與前兩個函數類似,但是可以直接讀寫JSON文件。
二、JSON字元串轉Python對象
1、簡單JSON字元串
對於簡單的JSON字元串,可以使用`json.loads()`函數將其轉換為Python對象。例如:
import json # 將JSON字元串轉換為Python對象 json_str = '{"name": "Alice", "age": 20}' python_obj = json.loads(json_str) print(python_obj)
執行上述代碼,輸出結果為:
{'name': 'Alice', 'age': 20}
可以看到,`json.loads()`函數將JSON字元串轉換為Python字典對象。
2、複雜JSON字元串
對於複雜的JSON字元串,可以使用`json.loads()`函數將其轉換為Python對象。例如:
import json # 將JSON字元串轉換為Python對象 json_str = '{"name": "Alice", "age": 20, "courses": [{"name": "Math", "score": 90}, {"name": "English", "score": 80}]}' python_obj = json.loads(json_str) print(python_obj)
執行上述代碼,輸出結果為:
{'name': 'Alice', 'age': 20, 'courses': [{'name': 'Math', 'score': 90}, {'name': 'English', 'score': 80}]}
可以看到,`json.loads()`函數將JSON字元串轉換為Python嵌套字典和列表的組合對象。
三、Python對象轉JSON字元串
1、簡單Python對象
對於簡單的Python對象,可以使用`json.dumps()`函數將其轉換為JSON字元串。例如:
import json # 將Python對象轉換為JSON字元串 python_obj = {'name': 'Alice', 'age': 20} json_str = json.dumps(python_obj) print(json_str)
執行上述代碼,輸出結果為:
{"name": "Alice", "age": 20}
可以看到,`json.dumps()`函數將Python字典對象轉換為JSON字元串。
2、複雜Python對象
對於複雜的Python對象,可以使用`json.dumps()`函數將其轉換為JSON字元串。例如:
import json # 將Python對象轉換為JSON字元串 python_obj = {'name': 'Alice', 'age': 20, 'courses': [{'name': 'Math', 'score': 90}, {'name': 'English', 'score': 80}]} json_str = json.dumps(python_obj, indent=4) print(json_str)
執行上述代碼,輸出結果為:
{ "name": "Alice", "age": 20, "courses": [ { "name": "Math", "score": 90 }, { "name": "English", "score": 80 } ] }
可以看到,`json.dumps()`函數將Python嵌套字典和列表的組合對象轉換為JSON字元串,並且使用`indent`參數指定了輸出的縮進格式。
四、JSON文件讀寫
除了將Python對象轉換為JSON字元串和將JSON字元串轉換為Python對象之外,JSON模塊還提供了直接讀寫JSON文件的函數,包括`json.dump()`和`json.load()`函數。
1、寫入JSON文件
使用`json.dump()`函數將Python對象寫入JSON文件。例如,將Python對象寫入名為`data.json`的JSON文件中:
import json # 將Python對象寫入JSON文件 python_obj = {'name': 'Alice', 'age': 20} with open('data.json', 'w') as f: json.dump(python_obj, f)
執行上述代碼後,會在當前目錄下生成名為`data.json`的文件,其中內容為:
{"name": "Alice", "age": 20}
2、讀取JSON文件
使用`json.load()`函數從JSON文件中讀取Python對象。例如,從名為`data.json`的JSON文件中讀取Python對象:
import json # 從JSON文件中讀取Python對象 with open('data.json', 'r') as f: python_obj = json.load(f) print(python_obj)
執行上述代碼,輸出結果為:
{'name': 'Alice', 'age': 20}
五、總結
本文主要介紹了Python JSON模塊的基礎知識,包括JSON字元串轉Python對象、Python對象轉JSON字元串以及JSON文件讀寫等內容。通過對JSON模塊的學習,可以方便地解析和操作JSON數據,為Python開發中前後端數據的交互提供了便利。
原創文章,作者:OUGG,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/133673.html