Python JSON パーサーおよびバリデーター

Python で JSON を読み取り、検証、変更、シリアル化する方法を学びます。現実的な例を使用して、組み込みの json ライブラリをマスターします。

エディターで試してみる

概要

JSON (JavaScript Object Notation) は、Web 上でデータを交換するための標準形式です。 Python には、JSON 文字列を Python 辞書に、またはその逆に変換する「json」という名前の強力な組み込みモジュールが用意されています。

このモジュールは、JSON 文字列を直接処理するための `loads` と `dumps` と、ファイル ストリームからデータを直接読み書きするための `load` と `dump` という 2 つの主要な操作セットを公開します。

JSON を使用する場合、エラー処理は重要です。文字列構文が壊れている場合、Python は「json.JSONDecodeError」を発生させます。これは、パブリック API からペイロードを使用するときにキャッチすることが不可欠です。

コードと実行の出力

JSON 文字列の検証、辞書の解析、変更、およびきれいな出力を示すスクリプト。

import json

raw_json = """
{
    "status": "success",
    "data": {
        "user_id": 9042,
        "username": "coder_xyz",
        "roles": ["admin", "developer"],
        "verified": true
    }
}
"""

try:
    # Parsing JSON string into Python dict
    data = json.loads(raw_json)
    print("--- JSON Decoded Successfully ---")
    print(f"Username: {data['data']['username']}")
    print(f"Is Admin: {'admin' in data['data']['roles']}")
    
    # Mutating Python dict
    data['data']['verified'] = False
    data['data']['last_login'] = "2026-05-25"
    
    # Serializing dict back to formatted JSON
    pretty_json = json.dumps(data, indent=4)
    print("\n--- Modified JSON String ---")
    print(pretty_json)
    
except json.JSONDecodeError as e:
    print(f"Invalid JSON Format: {e}")
端子出力
--- JSON Decoded Successfully ---
Username: coder_xyz
Is Admin: True

--- Modified JSON String ---
{
    "status": "success",
    "data": {
        "user_id": 9042,
        "username": "coder_xyz",
        "roles": [
            "admin",
            "developer"
        ],
        "verified": false,
        "last_login": "2026-05-25"
    }
}

段階的な実装

  • アプリケーション構成と認証情報ファイルの読み取り
  • REST API エンドポイントからの応答を解析する
  • デスクトップユーティリティでのプログラムの状態またはレベルの保存

よくある質問

Python のダンプとダンプの違いは何ですか?

「dumps」はオブジェクトを JSON 文字列形式にシリアル化し、「dump」はシリアル化された JSON ストリームを書き込み可能なファイル オブジェクトに直接書き込みます。

Python は JSON の null 値をどのように処理しますか?

Python の「json」デコーダは、JSON の「null」を「None」に、「true」と「false」を「True」と「False」に、配列をリストに自動的にマッピングします。

関連トピック