JSON — это универсальный язык-переводчик между программами, как английский между туристами из разных стран. Ваша программа на Python, чужой сервис на JavaScript, мобильное приложение — все они «договорились» обмениваться данными в одном простом текстовом формате. json.dumps — это «упаковать чемодан в стандартную коробку для отправки», json.loads — «распаковать полученную коробку обратно в удобные вещи».
Что такое JSON
JSON (JavaScript Object Notation) — текстовый формат для хранения и передачи данных. На нём общаются почти все API в интернете. Он очень похож на словариКоллекция пар «ключ → значение»: {"a": 1}. Быстрый доступ по ключу. По-английски dict. и спискиИзменяемая упорядоченная коллекция элементов: [1, 2, 3]. По-английски list. Python.
Модуль json переводит данные Python в текст и обратно:
json.dumps(obj) — Python → строкаТекстовое значение в кавычках: "привет". Неизменяема. По-английски string (str). JSON (dump string).
Чаще всего JSON сохраняют в файл и читают из файла — это простой способ хранить настройки и данные программы.
▶ json-file.py
📝Заметка
Не путайте: dumps/loads (с буквой s) работают со строками, а dump/load (без s) — напрямую с файлами.
💡Совет
🔮 Предскажите вывод
JSON-числа и булевы значения после loads снова становятся обычными Python-объектами. А вот ключи в JSON всегда строки. Что выведет код?
▶ predict-json.py
Ответ — True bool, затем 4, затем None. JSON-значение true превращается в питоновский True (тип bool), число 3 — в int (поэтому +1 даёт 4), а null — в None. Это и есть таблица соответствия типов в действии.
⚠️ Частые ошибки новичков
Частая ошибка — передать в json.loadsневалидный JSON: например, с одинарными кавычками или висящей запятой. Это вызывает json.JSONDecodeError. Запустите код и почините строку: в JSON допустимы только двойные кавычки и без лишних запятых.
▶ broken-json.py
Заданиерешение.py
Напишите функцию roundtrip(d): преобразуйте словарь d в строку JSON через json.dumps, затем верните его обратно через json.loads. Результат должен быть равен исходному словарю.
Заданиерешение.py
Доп. задача. Напишите save_load(config): сохраните словарь config в файл "cfg.json" через json.dump, затем прочитайте его обратно через json.load и верните результат.
❓Проверь себя
Что делает json.loads(text)?
Во что превращается Python-словарь в JSON?
В чём разница между json.dump и json.dumps?
ℹ️Важно
✅ Что вы узнали
JSON — универсальный текстовый формат обмена данными между программами.
json.dumps/loads работают со строками, json.dump/load — с файлами.
Комментарии
Загрузка…
Загрузка комментариев…