Парсер и валидатор 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`, а массивы со списками.