目錄
深入了解 Python 處理 JSON 檔案
JSON(JavaScript Object Notation)是一種輕量級的資料交換格式,因其文字為基礎的結構而易於讀寫。它廣泛用於資料儲存和傳輸,並且能夠在不同的程式語言之間進行資料的交換。
Python 是一種功能強大的程式語言,能夠有效處理各種資料格式,尤其是 JSON。在本文中,我們將深入探討如何使用 Python 來處理 JSON 檔案,包括最新的語法、實作範例以及常見錯誤的排除技巧。
什麼是 JSON?
JSON 是一種輕量級的資料交換格式,具備易讀性和良好的結構。它的基本結構由鍵值對組成,鍵是字串,值可以是字串、數字、布林值、陣列或物件。以下是一個 JSON 格式的範例:
{
"name": "John Doe",
"age": 30,
"is_married": true,
"hobbies": ["reading", "swimming", "hiking"],
"address": {
"street": "123 Main Street",
"city": "New York",
"state": "NY"
}
}
上述範例描述了一個名為 John Doe 的人,包含他的年齡、婚姻狀況、興趣及住址資訊。
使用 Python 處理 JSON 檔案
Python 提供了一個內建的模組 `json`,用於處理 JSON 檔案。以下是使用此模組的基本方法。
讀取 JSON 檔案
要讀取 JSON 檔案,可以使用 `json.load()` 方法,它接受一個檔案對象作為參數,並返回一個 Python 對象。以下是範例程式碼:
import json
with open('data.json') as f:
data = json.load(f)
這段程式碼將會從 `data.json` 檔案中讀取資料並將其存儲在 `data` 變數中。
寫入 JSON 檔案
要將資料寫入 JSON 檔案,可以使用 `json.dump()` 方法,它接受兩個參數:要寫入的資料和檔案對象。以下是範例程式碼:
import json
data = {
"name": "John Doe",
"age": 30,
"is_married": true,
"hobbies": ["reading", "swimming", "hiking"],
"address": {
"street": "123 Main Street",
"city": "New York",
"state": "NY"
}
}
with open('data.json', 'w') as f:
json.dump(data, f, indent=4)
這段程式碼會將 `data` 變數中的資料寫入 `data.json` 檔案中,並使用 `indent=4` 參數來美化輸出格式。
轉換 Python 對象為 JSON 格式
如果你想將 Python 對象轉換成 JSON 格式的字串,可以使用 `json.dumps()` 方法。以下是範例程式碼:
import json
data = {
"name": "John Doe",
"age": 30,
"is_married": true,
"hobbies": ["reading", "swimming", "hiking"],
"address": {
"street": "123 Main Street",
"city": "New York",
"state": "NY"
}
}
json_data = json.dumps(data, indent=4)
這段程式碼會將 `data` 變數中的資料轉換為 JSON 格式的字串,並將結果存儲在 `json_data` 變數中。
轉換 JSON 格式為 Python 對象
若要將 JSON 字串轉換為 Python 對象,則可以使用 `json.loads()` 方法。以下是範例程式碼:
import json
json_data = '{"name": "John Doe", "age": 30, "is_married": true, "hobbies": ["reading", "swimming", "hiking"], "address": {"street": "123 Main Street", "city": "New York", "state": "NY"}}'
data = json.loads(json_data)
這段程式碼會將 `json_data` 變數中的資料轉換為 Python 對象,並將結果存儲在 `data` 變數中。
常見錯誤與排除
在處理 JSON 檔案時,可能會遇到以下常見錯誤:
1. **JSONDecodeError**:通常由於 JSON 格式不正確引起,請檢查 JSON 字串的結構與符號。
2. **FileNotFoundError**:這是因為指定的檔案不存在,請確保檔案路徑正確。
3. **TypeError**:寫入不支援的資料類型,請檢查要寫入的資料是否為字典或列表。
總結
本文介紹了如何使用 Python 處理 JSON 檔案,包括讀取、寫入、以及格式轉換的方法。隨著 Python 語法的演進,保持學習最新的實踐將有助於提升你的程式設計能力。
Q&A(常見問題解答)
Q1: 如何確認 JSON 檔案格式正確?
A1: 可以使用線上 JSON 驗證工具來檢查 JSON 格式是否正確,或在 Python 中使用 `json.loads()` 方法來驗證。
Q2: Python 中 JSON 檔案的編碼方式是什麼?
A2: Python 中的 JSON 檔案默認使用 UTF-8 編碼,這是最常用的編碼方式。
Q3: 如何將 JSON 數據轉換為 CSV 格式?
A3: 可以使用 `pandas` 庫將 JSON 數據導入 DataFrame,然後使用 `to_csv()` 方法將其寫入 CSV 檔案。
—