Перейти к содержимому

JSON в Python

Мы подготовили подробное руководство по работе с JSON в Python, которое поможет вам понять, как использовать этот формат в программировании на Python. JSON — это популярный формат обмена данными, используемый в веб-сервисах и API, и важно уметь работать с ним в Python.

Введение в JSON в Python

JSON расшифровывается как JavaScript Object Notation. Это легкий формат обмена данными, который удобно читать и записывать человеку, а также легко обрабатывать машине. В Python встроен модуль json, предоставляющий методы для работы с данными в формате JSON.

В этой статье мы рассмотрим следующие темы:

  • Синтаксис и типы данных JSON
  • Кодирование и декодирование JSON в Python
  • Работа с вложенными данными JSON
  • Парсинг JSON из URL

Синтаксис и типы данных JSON

Данные JSON представляются в виде пар «ключ-значение», аналогично словарю в Python. Ключ всегда является строкой, заключенной в двойные кавычки, а значением может быть строка, число, объект, массив, логическое значение или null. JSON не поддерживает комментарии, но допускает использование пробелов для улучшения читаемости.

Вот пример данных JSON:


json
{
  "name": "John Doe",
  "age": 30,
  "city": "New York",
  "hobbies": ["reading", "traveling", "photography"]
}

Кодирование и декодирование JSON в Python

Модуль json предоставляет два метода для работы с данными JSON: json.dumps() для кодирования объектов Python в формат JSON и json.loads() для декодирования данных JSON в объекты Python.

Вот пример кодирования словаря Python в формат JSON:

Кодирование словаря Python в формат JSON

python
import json

person = {
    "name": "John Doe",
    "age": 30,
    "city": "New York",
    "hobbies": ["reading", "traveling", "photography"]
}

json_data = json.dumps(person)
print(json_data)

Результат выполнения:


console
{"name": "John Doe", "age": 30, "city": "New York", "hobbies": ["reading", "traveling", "photography"]}

Вот пример декодирования данных JSON в объекты Python:

Декодирование данных JSON в объекты Python

python
import json

json_data = '{"name": "John Doe", "age": 30, "city": "New York", "hobbies": ["reading", "traveling", "photography"]}'
person = json.loads(json_data)
print(person)

Результат выполнения:


console
{'name': 'John Doe', 'age': 30, 'city': 'New York', 'hobbies': ['reading', 'traveling', 'photography']}

Примечание: При декодировании JSON рекомендуется обрабатывать возможные исключения json.JSONDecodeError, если входные данные могут быть некорректными.

Работа с вложенными данными JSON

Данные JSON также могут содержать вложенные объекты и массивы. Вот пример вложенного объекта JSON:


json
{
  "name": {
    "first": "John",
    "last": "Doe"
  },
  "age": 30,
  "city": "New York",
  "hobbies": ["reading", "traveling", "photography"]
}

Для доступа к вложенным данным в Python можно использовать нотацию с квадратными скобками. Вот пример доступа к имени:

Доступ к вложенным объектам в JSON в Python

python
import json

json_data = '{"name": {"first": "John", "last": "Doe"}, "age": 30, "city": "New York", "hobbies": ["reading", "traveling", "photography"]}'
person = json.loads(json_data)

print(person['name']['first'])

Результат выполнения:


console
John

Парсинг JSON из URL

Во многих случаях вам может потребоваться распарсить данные JSON из URL. Модуль json предоставляет json.load() для файловых объектов и json.loads() для строк. Для URL обычно сначала загружают содержимое. Вот пример с использованием современной библиотеки requests:

Парсинг данных JSON из URL в Python

python
import requests

response = requests.get("https://example.com/data.json")
data = response.json()
print(data)

В этом примере мы используем библиотеку requests для загрузки URL. Метод response.json() автоматически преобразует строку JSON в объект Python.

Заключение

В этой статье мы рассмотрели основы работы с данными JSON в Python. Мы научились кодировать и декодировать данные JSON, работать с вложенными данными JSON и парсить данные JSON из URL.

Следуя рекомендациям, изложенным в этом руководстве, вы сможете создавать качественный код на Python, эффективно работающий с данными JSON. Более глубокое понимание JSON позволит вам разрабатывать более надежные и эффективные приложения, соответствующие вашим бизнес-потребностям.

Практика

Что в Python можно преобразовать в JSON?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.