JSON: формат обмена данными
Распространённый текстовый формат для структурированных данных, который понимают программы на разных языках.
JSON (JavaScript Object Notation) — текстовый формат для передачи структурированных данных между программами. Название напоминает про JavaScript, но JSON давно используется программами на любых языках, включая Python, — это просто текстовый формат, а не код, который где-то выполняется.
| Значение JSON | Соответствие в Python |
|---|---|
объект {{"ключ": значение}} | dict |
массив [1, 2, 3] | list |
строка "текст" | str |
число 42 / 3.14 | int / float |
true / false | True / False |
null | None |
{{'name': 'Ada'}} — это распечатка словаря Python, а не JSON: в корректном JSON она выглядит как {{"name": "Ada"}}. Одинарные кавычки, True с большой буквы, завершающая запятая перед закрывающей скобкой — всё это ломает JSON, даже если выглядит почти правильно.Модуль json — стандартная библиотека Python
import json
zadacha = {{"title": "Купить хлеб", "done": False}}
# Python -> текст JSON
tekst = json.dumps(zadacha, ensure_ascii=False)
print(tekst) # {{"title": "Купить хлеб", "done": false}}
# текст JSON -> Python
obratno = json.loads(tekst)
print(obratno["title"]) # Купить хлеб
json.dumps() заменяет все не-ASCII символы на escape-последовательности вроде \u041a — валидный, но нечитаемый для человека JSON. ensure_ascii=False оставляет кириллицу как есть; результат остаётся тем же самым JSON, просто удобным для чтения.Ограничения формата JSON
У формата нет отдельного типа для даты и времени — их обычно передают строкой в
оговорённом формате (например, "2026-08-23") и разбирают уже
на своей стороне. Нет и типа для двоичных данных (изображение, файл) — их обычно кодируют
в текст (например, Base64) или передают отдельным запросом. А ещё JSON не различает целые
и вещественные числа так строго, как Python: очень большие или очень точные числа при
передаче между разными языками программирования иногда требуют аккуратности.