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 データを解析できない原因となり、本番環境で使用する前に、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処理ツールを提供することに専念

関連投稿

さらに多くの投稿が近日公開予定...

ヘルプが必要ですか?