Олег Марков
Работа с JSON в Python на примерах
Введение
JSON (JavaScript Object Notation) — популярный формат обмена данными между приложениями и веб-сервисами. В Python работа с JSON позволяет легко хранить, передавать и обрабатывать структурированные данные.
В этой статье мы рассмотрим, как использовать модуль json в Python для чтения, записи и преобразования данных, а также приведём практические примеры.
Подключение модуля JSON
В Python модуль json встроен в стандартную библиотеку, поэтому его не нужно устанавливать:
import jsonМодуль предоставляет функции для кодирования и декодирования JSON-данных, такие как json.dumps(), json.loads(), json.dump() и json.load().
Чтение JSON
Пример строки в формате JSON и её преобразование в объект Python:
json_data = '{"name": "Иван", "age": 30, "city": "Москва"}'
data = json.loads(json_data)
print(data)
print(data["name"])json.loads()преобразует строку JSON в словарь Python.- После преобразования можно обращаться к данным через ключи.
Для более уверенной работы с JSON, включая чтение больших файлов и интеграцию с внешними API, рекомендуем курс Основы Python. Курс содержит 209 уроков и 34 упражнения, AI-тренажёры для практики 24/7, решение задач с живым ревью наставника и еженедельные встречи с менторами.
Запись JSON
Для преобразования объекта Python в JSON-строку используется json.dumps():
data = {"name": "Анна", "age": 25, "city": "Санкт-Петербург"}
json_string = json.dumps(data, ensure_ascii=False)
print(json_string)ensure_ascii=Falseпозволяет корректно отображать символы Unicode.- Для записи в файл используется
json.dump():
with open("data.json", "w", encoding="utf-8") as f:
json.dump(data, f, ensure_ascii=False, indent=4)indent=4форматирует JSON с отступами для удобного чтения.
Чтение JSON из файла
with open("data.json", "r", encoding="utf-8") as f:
data = json.load(f)
print(data)json.load()считывает данные из файла и преобразует их в объекты Python.
Работа с вложенными структурами
JSON может содержать вложенные объекты и массивы:
json_data = '''
{
"user": {"name": "Игорь", "age": 40},
"posts": [{"id": 1, "title": "Первый пост"}, {"id": 2, "title": "Второй пост"}]
}
'''
data = json.loads(json_data)
print(data["user"]["name"]) # Игорь
print(data["posts"][1]["title"]) # Второй постПонимание структуры JSON важно для корректной обработки данных и интеграции с API.
Частые ошибки
- Попытка использовать
json.loads()для файла вместо строки (для файла —json.load()). - Пропуск обработки исключений при неверном формате JSON.
- Игнорирование кодировки UTF-8 при работе с русскими символами.
- Неправильная работа с вложенными структурами и ключами.
Частозадаваемые вопросы
Можно ли сериализовать пользовательские объекты?
Да, с помощью параметра default в json.dumps().
Что делать при ошибке декодирования JSON?
Проверять корректность формата и использовать try/except для обработки исключений.
Как сохранить JSON в читаемом виде?
Использовать параметр indent в json.dump() или json.dumps().
Можно ли работать с JSON без модуля json? Для базовых операций лучше использовать встроенный модуль, сторонние библиотеки нужны редко.
Заключение
Работа с JSON в Python — ключевой навык для обработки данных и интеграции с внешними сервисами. Использование встроенного модуля json позволяет легко преобразовывать данные между форматом JSON и объектами Python.
Использование JSON ускоряет обмен данными и упрощает интеграцию с API. Для закрепления навыков работы с JSON и изучения дополнительных возможностей Python рекомендуем курс Основы Python.
В первых 3 модулях курса доступно бесплатное содержание, что позволяет сразу практиковаться с чтением, записью и обработкой JSON, а также понять структуру курса до полного изучения.
Постройте личный план изучения Python до уровня Middle — бесплатно!
Python — часть карты развития Backend
100+ шагов развития
30 бесплатных лекций
300 бонусных рублей на счет
Все гайды по Python
Лучшие курсы по теме

Основы Python
Антон Ларичев
Nest.js с нуля
Антон Ларичев