Tutorial

🐍 使用 Python 進行 JSON 驗證(JSON 驗證器教學)

學習如何使用 Python 內建的 json 模組和第三方函式庫 jsonschema 來驗證 JSON 格式和結構。包含完整的程式碼範例和最佳實務。

2025-10-13
5 min read

🐍 使用 Python 進行 JSON 驗證(JSON 驗證器教學)

什麼是 JSON 驗證?

在 Web 開發和資料互動中,JSON(JavaScript Object Notation) 是最常用的資料格式之一。

它用於 API 通訊、設定檔、日誌儲存等場景。

但在開發過程中,我們經常會遇到:

  • • JSON 檔案格式錯誤;
  • • 括號未閉合;
  • • 字串引號缺失;
  • • 多餘的逗號等。

這些錯誤會導致程式無法解析 JSON 資料,因此在正式使用前,我們需要驗證(Validate)JSON 的格式是否正確


使用 Python 驗證 JSON 格式

Python 內建了一個非常實用的模組 —— json,可以輕鬆完成 JSON 的載入與校驗。

✅ 範例 1:基礎驗證

import json

def validate_json(json_string):
    try:
        json.loads(json_string)
        print("✅ JSON 格式正確!")
    except json.JSONDecodeError as e:
        print("❌ JSON 格式錯誤:", e)

# 範例 JSON
data = '{"name": "Alice", "age": 25}'
validate_json(data)

執行結果:

✅ JSON 格式正確!

如果輸入格式錯誤,例如:

data = '{"name": "Alice", "age": 25,}'  # 多了一個逗號
validate_json(data)

結果:

❌ JSON 格式錯誤:Expecting property name enclosed in double quotes: line 1 column 28 (char 27)


✅ 範例 2:驗證 JSON 檔案

import json

def validate_json_file(file_path):
    with open(file_path, 'r', encoding='utf-8') as f:
        try:
            json.load(f)
            print(f"✅ 檔案 {file_path} 中的 JSON 格式正確!")
        except json.JSONDecodeError as e:
            print(f"❌ {file_path} 格式錯誤:{e}")

# 呼叫
validate_json_file('data.json')

該腳本會自動讀取檔案並驗證內容是否是合法的 JSON。


增強版驗證:檢查結構與欄位

除了語法正確,有時我們還想驗證 JSON 的結構是否符合預期,比如必須包含 nameageemail 欄位。

可以使用第三方函式庫 jsonschema 來完成。

安裝:

pip install jsonschema

範例:

from jsonschema import validate, ValidationError

# 定義資料結構
schema = {
    "type": "object",
    "properties": {
        "name": {"type": "string"},
        "age": {"type": "integer"},
        "email": {"type": "string"}
    },
    "required": ["name", "age"]
}

# 測試資料
data = {"name": "Alice", "age": 25}

try:
    validate(instance=data, schema=schema)
    print("✅ JSON 資料結構合法!")
except ValidationError as e:
    print("❌ JSON 結構錯誤:", e.message)

執行結果:

✅ JSON 資料結構合法!

如果缺少欄位或型別錯誤,會顯示清晰的錯誤提示。


完整範例:檔案批次驗證器

import os
import json

def validate_json_files(folder):
    for file in os.listdir(folder):
        if file.endswith('.json'):
            path = os.path.join(folder, file)
            try:
                with open(path, 'r', encoding='utf-8') as f:
                    json.load(f)
                print(f"✅ {file} 驗證通過")
            except json.JSONDecodeError as e:
                print(f"❌ {file} 格式錯誤:{e}")

# 批次驗證當前目錄下所有 JSON 檔案
validate_json_files(".")


結語

使用 Python 驗證 JSON 不僅簡單高效,還能與自動化測試、資料匯入等流程整合。

您可以在專案中將 JSON 驗證作為一個獨立步驟,避免生產環境中因格式錯誤造成的介面異常。

如果您不想手動執行腳本,也可以直接使用我們的線上工具:

👉 JSON 驗證器線上校驗工具

它支援:

  • • 線上格式化與驗證
  • • 一鍵美化與壓縮
  • • 轉換為 CSV / XML
  • • 自動修復常見語法錯誤


🔖 相關文章推薦


JSON Work 團隊 2025年1月15日
👨‍💻

JSON Work 團隊

致力於為開發者提供最佳的 JSON 處理工具

相關文章

更多文章即將發布...

需要幫助?