チュヌトリアル

🐍 Python で JSON 怜蚌JSON バリデヌタヌ チュヌトリアル

Python の組み蟌み json モゞュヌルずサヌドパヌティラむブラリ jsonschema を䜿甚しお JSON フォヌマットず構造を怜蚌する方法を孊びたす。完党なコヌド䟋ずベストプラクティスを含みたす。

2025-10-135分

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 怜蚌を独立したステップずしお䜿甚するこずで、本番環境でのフォヌマット゚ラヌによるむンタヌフェヌス䟋倖を避けるこずができたす。

スクリプトを手動で実行したくない堎合は、オンラむンツヌルを盎接䜿甚するこずもできたす

👉 JSON バリデヌタヌ オンラむンツヌル

サポヌト機胜

  • • オンラむンフォヌマットず怜蚌
  • • ワンクリック矎化ず圧瞮
  • • CSV / XML ぞの倉換
  • • 䞀般的な構文゚ラヌの自動修正


🔖 関連蚘事


JSON Work チヌム 2025幎1月15日

JSON Work チヌム

開発者に最高のJSON凊理ツヌルを提䟛するこずに専念

関連投皿

さらに倚くの投皿が近日公開予定...

ブログに戻る

関連ツヌル

よくある質問

曎新の远い方、扱うトピック、リク゚ストに぀いお。

新着蚘事を芋逃さないには

このブログ䞀芧をブックマヌクし、ホヌムやツヌル䞀芧のガむド欄もご芧ください。蚘事の閲芧に登録やメヌル賌読は䞍芁です。

どんな内容が䞭心ですか

JSON の怜蚌・敎圢・倉換・デバッグの流れず JSON Work の曎新で、サむト䞊の無料ツヌルがブラりザ内でできるこずず察応づけおいたす。

チュヌトリアル題材の提案はできたすか

はい。About の連絡先や GitHub からどうぞ。実務の統合やデバッグに盎結するテヌマを優先しおいたす。