Парсер и валидатор Python JSON

Узнайте, как читать, проверять, изменять и сериализовать JSON в Python. Освойте встроенную библиотеку json на реалистичных примерах.

Попробуйте в редакторе

Обзор

JSON (нотация объектов JavaScript) — это стандартный формат для обмена данными в Интернете. Python предоставляет мощный встроенный модуль json, который переводит строки JSON в словари Python и наоборот.

Модуль предоставляет два основных набора операций: «загрузка» и «дамп» для непосредственной обработки строк JSON, а также «загрузка» и «дамп» для записи или чтения данных непосредственно из файловых потоков.

При работе с 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?

Декодер Python `json` автоматически сопоставляет JSON `null` с `None`, `true` и `false` с `True` и `False`, а массивы со списками.

Связанные темы