Python 的 JSON 資料操作完全指南|從讀取到寫入的徹底解析

1. 什麼是 JSON?

JSON 概述

JSON(JavaScript Object Notation)是一種輕量且高效的資料交換格式,主要用於 Web 應用程式與伺服器之間的數據傳輸。雖然 JSON 基於 JavaScript 語法,但幾乎所有程式語言都支援它。特別是在透過 API 進行資料請求與傳輸時,JSON 扮演著極為重要的角色。

JSON 的結構

JSON 由「鍵值對」組成,並使用大括號 {} 包圍數據。例如,請參考以下的 JSON 結構:

{
    "name": "John",
    "age": 30,
    "isStudent": false,
    "courses": ["Math", "Physics", "Chemistry"]
}

這種結構可以包含列表(陣列)或巢狀(嵌套)物件,非常靈活且容易使用。

2. Python 讀取 JSON 檔案的基本方法

Python 的 json 模組介紹

在 Python 中,我們可以使用標準模組 json 來輕鬆處理 JSON 檔案。這個模組內建於 Python,不需要額外安裝,並且提供了許多處理 JSON 讀取與寫入的基本功能。

如何讀取 JSON 檔案

使用 json.load() 函數可以從檔案中讀取 JSON 數據,並將其轉換為 Python 字典。以下是一個簡單的範例:

import json

with open('data.json', 'r', encoding='utf-8') as f:
    data = json.load(f)

print(data)

 

3. 如何在 Python 中讀取 JSON 字串

使用 json.loads() 函數

當我們需要將 JSON 字串轉換為 Python 字典時,可以使用 json.loads() 函數。這個函數在處理 API 回應(如 REST API)時非常實用。

import json

json_string = '{"name": "Alice", "age": 25, "city": "Tokyo"}'
data = json.loads(json_string)

print(data)

這樣,我們就可以輕鬆地將 JSON 字串轉換為 Python 字典。

RUNTEQ(ランテック)|超実戦型エンジニア育成スクール

4. 讀取 JSON 檔案時的注意事項與錯誤處理

常見錯誤與解決方案

在讀取 JSON 檔案時,最常見的錯誤之一是 JSONDecodeError。當 JSON 檔案格式不正確時,這個錯誤就會發生。因此,處理錯誤時,應該提供適當的錯誤處理機制,以確認問題所在。

import json

try:
    with open('data.json', 'r', encoding='utf-8') as f:
        data = json.load(f)
except json.JSONDecodeError as e:
    print(f"JSON 讀取錯誤: {e}")

編碼(Encoding)問題

如果 JSON 檔案包含中文或其他非 ASCII 字元,則需要特別注意編碼問題。使用 encoding='utf-8' 可以避免文字顯示錯誤。

5. 處理大型 JSON 資料的高效方法

考慮記憶體效率的資料處理

如果一次性將大型 JSON 檔案載入到記憶體,可能會導致記憶體不足的問題。為了避免這種情況,建議使用 ijson 等串流(streaming)解析庫來逐步處理 JSON 數據。

import ijson

with open('large_file.json', 'r', encoding='utf-8') as f:
    for item in ijson.items(f, 'item'):
        print(item)

透過 ijson,我們可以高效地處理大型 JSON 檔案,而不會一次性佔用過多記憶體。

RUNTEQ(ランテック)|超実戦型エンジニア育成スクール

6. JSON 轉換為 Python 字典後的應用

基本的字典操作

將 JSON 轉換為字典後,我們可以很容易地對數據進行操作。例如,可以存取特定鍵的值、更新數據,甚至新增鍵值對。

# 操作字典數據
print(data['name'])  # 顯示 'Alice'
data['age'] = 26  # 更新年齡
data['email'] = 'alice@example.com'  # 新增電子郵件欄位
年収訴求

7. 在 Python 中寫入 JSON 檔案

如何將數據寫入 JSON 檔案

當我們修改或處理過 Python 字典後,通常需要將更新後的數據寫回 JSON 檔案。這時可以使用 json.dump() 函數。

with open('data.json', 'w', encoding='utf-8') as f:
    json.dump(data, f, indent=4, ensure_ascii=False)

其中,indent=4 讓 JSON 變得更具可讀性,ensure_ascii=False 確保 JSON 檔案可以正確存儲中文等非 ASCII 字元。

広告
侍エンジニア塾