如何第一時間看到新文章?
收藏本部落格列表頁,並在首頁與工具聚合頁留意指南入口。閱讀文章無需註冊或訂閱電子報。
學習如何使用 Python 內建的 json 模組和第三方函式庫 jsonschema 來驗證 JSON 格式和結構。包含完整的程式碼範例和最佳實務。
在 Web 開發和資料互動中,JSON(JavaScript Object Notation) 是最常用的資料格式之一。
它用於 API 通訊、設定檔、日誌儲存等場景。
但在開發過程中,我們經常會遇到:
這些錯誤會導致程式無法解析 JSON 資料,因此在正式使用前,我們需要驗證(Validate)JSON 的格式是否正確。
Python 內建了一個非常實用的模組 —— json,可以輕鬆完成 JSON 的載入與校驗。
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)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 的結構是否符合預期,比如必須包含 name、age、email 欄位。
可以使用第三方函式庫 jsonschema 來完成。
pip install jsonschemafrom 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 處理工具
更多文章即將發布...
返回部落格關於跟進更新、選題與互動方式。
收藏本部落格列表頁,並在首頁與工具聚合頁留意指南入口。閱讀文章無需註冊或訂閱電子報。
圍繞 JSON 驗證、格式化、轉換與除錯流程,以及 JSON Work 工具更新,與站內工具的本地能力互相呼應。
可以。請透過關於頁的聯絡方式或 GitHub 回饋;我們會優先安排貼近真實開發情境的教學。