🐍 Python で JSON 検証(JSON バリデーター チュートリアル)
JSON 検証とは?
Web 開発とデータインタラクションにおいて、JSON(JavaScript Object Notation) は最も一般的に使用されるデータフォーマットの一つです。
API 通信、設定ファイル、ログ保存などの場面で使用されます。
しかし、開発中には以下のような問題によく遭遇します:
- • JSON ファイルフォーマットエラー;
- • 括弧が閉じられていない;
- • 文字列の引用符が不足;
- • 余分なカンマなど。
これらのエラーはプログラムが JSON データを解析できない原因となり、本番環境で使用する前に、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 の構造が期待通りかどうかも検証したい場合があります。例えば、name、age、email フィールドが必須であることなどです。
これにはサードパーティライブラリ 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 検証を独立したステップとして使用することで、本番環境でのフォーマットエラーによるインターフェース例外を避けることができます。
スクリプトを手動で実行したくない場合は、オンラインツールを直接使用することもできます:
サポート機能:
- • オンラインフォーマットと検証
- • ワンクリック美化と圧縮
- • CSV / XML への変換
- • 一般的な構文エラーの自動修正
🔖 関連記事
JSON Work チーム 2025年1月15日