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

Python JSON

JSON — это формат для сохранения данных и их передачи между системами.

Это обычный текст, использующий простую нотацию объектов.


JSON в Python

В Python есть встроенный пакет json для работы с данными JSON.

Пример

Сначала импортируйте модуль json:
main.py
import json

Разбор JSON — преобразование из JSON в Python

Строку JSON можно разобрать с помощью метода json.loads().

В этом примере результатом будет словарь Python.

Пример

Превратите строку JSON в данные Python:
Prompt
Разберите строку JSON в словарь Python с помощью json.loads(). Строка JSON содержит имя (name), возраст (age) и город (city). Выведите значение возраста (age).
Вывод: полная программа на Python

Преобразование из Python в JSON

В обратном направлении метод json.dumps() превращает объект Python в строку JSON.

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

  • dict
  • list
  • tuple
  • string
  • int
  • float
  • True
  • False
  • None

При преобразовании каждый объект Python становится своим эквивалентом в JSON:

  • dict → Object
  • list → Array
  • tuple → Array
  • str → String
  • int → Number
  • float → Number
  • True → true
  • False → false
  • None → null

Пример

Превратите словарь Python в строку JSON:
Prompt
Преобразуйте словарь Python с именем (name), возрастом (age) и городом (city) в строку JSON с помощью json.dumps(). Выведите полученную строку JSON.
Вывод: полная программа на Python

Пример

Преобразуйте в строку JSON по одному объекту Python каждого типа и выведите каждый результат:
Prompt
Преобразуйте объекты Python разных типов (dict, list, tuple, string, int, float, True, False, None) в строки JSON. Используйте json.dumps() для каждого из них и выведите результаты.
Вывод: полная программа на Python

Пример

Преобразуйте один объект Python, использующий все допустимые типы данных:
Prompt
Преобразуйте объект Python, содержащий все допустимые типы данных (строка, int, bool, кортеж, None, список словарей), в строку JSON. Выведите результат с помощью json.dumps().
Вывод: полная программа на Python

Форматирование результата

Строку JSON, выведенную выше, трудно читать: в ней нет отступов и переносов строк.

json.dumps() принимает параметры, которые делают вывод более удобочитаемым:

Разделители тоже можно настроить. По умолчанию они равны (", ", ": "): запятая и пробел между объектами, двоеточие и пробел между ключами и значениями:

Пример

Задайте параметр indent, чтобы выбрать, на сколько пробелов смещается каждый уровень:
Prompt
Используйте json.dumps() с параметром indent, равным 4, чтобы отформатировать вывод JSON с отступами.
Вывод: полная программа на Python

Пример

Замените разделители по умолчанию с помощью параметра separators:
Prompt
Используйте json.dumps() с indent=4 и собственными разделителями separators=(". ", " = "), чтобы изменить разделитель по умолчанию.
Вывод: полная программа на Python

Упорядочивание результата

Другие параметры json.dumps() управляют порядком ключей в выводе:

Пример

Задайте параметр sort_keys, чтобы выбрать, будет ли вывод отсортирован:
Prompt
Используйте json.dumps() с indent=4 и sort_keys=True, чтобы отсортировать ключи в выводе JSON.
Вывод: полная программа на Python