Парсинг JSON в Python
2026-03-10 22:35 Diff

Модуль JSON входит в стандартную библиотеку Python и является эффективным средством взаимодействия с JavaScript Object Notation (именно так расшифровывается JSON). Функции этого модуля дают возможность разработчику кодировать и декодировать информацию при работе с различными JSON-объектами. Всё это существенно упрощает создание веб-приложений в Python.

Пару слов о JSON

JSON сегодня очень распространён и представляет собой формат данных, представленных в текстовом виде. За счёт своей универсальности и простоты JSON прекрасно работает на различных платформах. С его помощью разработчик может выполнять сериализацию структур информации в целях последующей передачи данных между приложениями. Как пример — обмен текстовой информацией между сервером и браузером о клиентах в интернет-магазине.

Данные в формате JSON могут быть представлены в нескольких видах: 1) последовательность пар с ключами и соответствующими этим ключам значениями; 2) упорядоченный набор значений.

Значения, передаваемые в JSON, могут быть строками, числами, объектами, литералами (true, false, null), одномерными массивами. Что касается Python, то он поддерживает работу с JSON-форматом с помощью специального json-модуля и методов по кодированию/декодированию данных. В результате можно получать и отправлять сведения в виде, комфортном для чтения.

Сохраняем данные в JSON в Python

Если мы хотим записать информацию в JSON-формате, используя средства языка программирования Python, для начала надо подключить соответствующий json-модуль. Для этого нам пригодиться команда import json в самом начале кода.

Также стоит упомянуть метод dumps — он отвечает за автоматическую упаковку информации в JSON и принимает переменную, содержащую все необходимые данные.

Теперь давайте продемонстрируем кодирование словаря dictData. В нём содержатся некоторые данные о пользователе интернет-портала: идентификационный код, пароль, логин, имя, номер телефона, информация об активности, e-mail. Все эти значения представлены в форме обыкновенных строк, а также булевых литералов True/False и целых чисел. Вот наш пример:

import json dictData = { "ID" : 310450, "login" : "admin", "name" : "James Bond", "password" : "root", "phone" : 3330303, "email" : " bond@mail.com", "online" : True } jsonData = json.dumps(dictData) print(jsonData) {"ID": 310450, "login": "admin", "name": "James Bond", "password": "root", "phone": 3330303, "email": "bond@mail.com ", "online": true}

Выполнив метод dumps, мы получим результат, который передастся в переменную с названием jsonData. То есть мы видим, что словарь dictData преобразовался в формат JSON всего лишь одной строчкой. А за счёт функции print вся информация была закодирована в изначальном виде. Также следует добавить, что сведения из поля online преобразовались из литерала True в true.

Теперь, используя Python, выполним запись json в файл. Чтобы это сделать, дополним предыдущий код:

with open("data.json", "w") as file: file.write(jsonData)

Разбираем JSON-данные в Python

Если мы хотим выполнить обратную операцию и быстро раскодировать формат JSON средствами языка Python, нам поможет метод loads. Он позволяет без труда преобразовать JSON в объект, и с этим объектом мы сможем легко взаимодействовать в программе.

В нашем следующем примере мы продемонстрируем создание аналогичного JSON-объекта с имеющейся информацией о пользователе. Если мы будем в качестве параметра передавать переменную jsonData методу loads, на выходе получим словарь dictData, а из него уже сможем получить нужные данные. Print выведет отдельные поля dictData: имя, информацию об активности, номер телефона, адрес e-mail.

import json jsonData = """ { "ID" : 310450, "login" : "admin", "name" : "James Bond", "password" : "root", "phone" : 3330303, "email" : " bond@mail.com", "online" : true } """ dictData = json.loads(jsonData) print(dictData["name"]) print(dictData["phone"]) print(dictData["email"]) print(dictData["online"]) James Bond 3330303 bond@mail.com True

Мы видим, что произошло обратное, а литерал true автоматически преобразовался в True. Это произошло, чтобы была возможность работать с ним средствами Python.

P.S. Итак, мы выполнили кодирование и декодирование информации в JSON-формате с помощью встроенных средств Python. Благодаря наличию удобных методов из модуля json (dumps и loads), эти операции были осуществлены довольно просто. Остаётся добавить, что функции loads и dumps способны взаимодействовать и с другими видами объектов, включая более сложные (например, со вложенными разновидностями словарей со множеством строковых значений).