Python 的 json 模組是一個內建的庫,用於處理 JSON(JavaScript Object Notation)數據格式。
JSON 是一種輕量級的資料交換格式,易於人類閱讀和撰寫,也易於機器解析和生成。
以下是對 json 模組的詳細介紹,包括其功能、常用函數和示例。
JSON 格式: JSON 是一種基於文本的資料格式,通常用於網路應用程式之間的資料傳遞。它使用鍵值對(key-value pairs)的方式來表示資料,結構類似於 Python 的字典。
Python 的 json 模組提供了多個函數,用於在 Python 對象和 JSON 數據之間進行轉換和序列化。
函數名稱 | 描述 | 參數 | 返回值 |
---|---|---|---|
json.dumps(obj) |
將 Python 對象轉換為 JSON 字串。 | obj : 要轉換的 Python 資料結構。可選參數如 indent 用於格式化輸出。 |
JSON 字串 |
json.loads(json_string) |
將 JSON 字串‘轉換’解析為 Python 對象。 | json_string : 要解析的 JSON 字串。 |
Python 對象 |
json.dump(obj, file) |
將 Python 對象‘寫入’到文件中,以 ‘JSON 格式儲存’。 | obj : 要寫入的 Python 資料結構。file : 開啟的文件對象。 |
無 |
json.load(file) |
從文件中‘讀取’ JSON 數據並解析為 Python 對象。 | file : 開啟的文件對象。 |
Python 對象 |
1.json.dumps(obj)
:將 Python 對象轉換為 JSON 字串。
- 參數:
- obj: 要轉換的 Python 資料結構。
- 可選參數如 indent 用於格式化輸出。
範例:
import json
data = {"name": "John", "age": 30}
json_string = json.dumps(data)
print(json_string) # 輸出: {"name": "John", "age": 30}
2.json.loads(json_string)
:將 JSON 字串解析為 Python 對象。
參數:
json_string: 要解析的 JSON 字串。
import json
json_string = '{"name": "John", "age": 30}'
data = json.loads(json_string)
print(data) # 輸出: {'name': 'John', 'age': 30}
3.json.dump(obj, file)
:將 Python 對象寫入到文件中,以 JSON 格式儲存。
參數:
obj: 要寫入的 Python 資料結構。
file: 開啟的文件對象。
import json
data = {"name": "John", "age": 30}
with open('data.json', 'w') as f:
json.dump(data, f)
4.json.load(file):從文件中讀取 JSON 數據並解析為 Python 對象。
參數:
file: 開啟的文件對象。
import json
with open('data.json', 'r') as f:
data = json.load(f)
print(data) # 輸出: {'name': 'John', 'age': 30}
使用 json.loads() 當你有一個 JSON 文件字串需要‘轉換’解析時。
使用 json.load() 當你需要從一個JSON 文件中讀取數據時。
使用 json.dump() 當你想把 Python 裡面資料(比如字典)寫入到一個json文件中,並儲存。
使用 json.dumps() Python 裡面的資料變成 JSON 字串,但不需要寫入文件
序列化與反序列化:
當你將 Python 字典轉換為 JSON 字串時,這個過程稱為序列化(Serialization)。這使得 Python 對象能夠以一種標準格式進行儲存或傳輸。
反之,將 JSON 字串轉換回 Python 對象的過程稱為反序列化(Deserialization)。