JSON позволяет быстро и просто работать с несколькими данными: в различных приложениях и языках программирования.
Python не исключение.
Если вы здесь, то вам, скорее всего, интересно, как конвертировать JSON в реальный объект: давайте разберемся в этом вместе.
Содержание
Пакет, который может все это делать: json
В Python мы можем использовать пакет, который называется просто… json.
Этот пакет позволяет нам преобразовать фактический JSON в объект Python.
Объекты представляются либо в виде словарей, либо в виде списков.
Нет необходимости выполнять дополнительные разборы или преобразования: пакет сам обо всем позаботится.
JSON может быть получен из строки, из файла, из HTTP-запроса вашего API: пакету все равно.
Loads: метод для преобразования JSON в объект Python
Итак, давайте рассмотрим метод “loads”: именно он позволяет нам выполнить это преобразование.
Начнем с примера.
У нас есть следующий JSON:
{
"tags": [
"событие",
"новость",
"встреча"
],
"friends": [
{
"id": 0,
"name": "Иван Иванов"
},
{
"id": 1,
"name": "Петр Петров"
}
],
"greeting": "Привет, Василий Васильев! У тебя 9 непрочитанных сообщений."
}
Code language: JSON / JSON with Comments (json)
Здесь есть все: объекты, строки, числа, списки.
Далее, я создаю переменную типа string для хранения этого JSON:
data_json='{ "tags": [ "событие", "новость", "встреча" ], "friends": [ { "id": 0, "name": "Иван Иванов" }, { "id": 1, "name": "Петр Петров" } ], "greeting": "Привет, Василий Васильев! У тебя 9 непрочитанных сообщений." }'
Code language: JavaScript (javascript)
Да, для простоты я поместил все в одну строку, но теперь давайте посмотрим, как преобразовать это в полноценный объект Python:
import json
data_json='{ "tags": [ "событие", "новость", "встреча" ], "friends": [ { "id": 0, "name": "Иван Иванов" }, { "id": 1, "name": "Петр Петров" } ], "greeting": "Привет, Василий Васильев! У тебя 9 непрочитанных сообщений." }'
ob_python_json=json.loads(data_json)
Code language: JavaScript (javascript)
Теперь, преобразование, реализованное через метод “loads”, превратило наш объект Python в словарь, и фактически ключи, которые были в JSON, стали “ключами” нашего нового dict.
Позвольте мне показать вам несколько примеров в реальном времени, чтобы вы увидели, как вы можете на 100% использовать преимущества полноценного чтения и “сокета” самого JSON:
>>> ob_python_json=json.loads(data_json)
>>> ob_python_json['greeting']
'Привет, Василий Васильев! У тебя 9 непрочитанных сообщений.'
>>> ob_python_json['friends'][1]
{'id': 1, 'name': 'Петр Петров'}
>>> print([tag for tag in ob_python_json['tags']])
['событие', 'новость', 'встреча']
Code language: PHP (php)
Другими словами, вот как можно преобразовать некоторый JSON в реальный объект Python.