Перейти к содержанию

Начало урока

Работа с JSON и CSV

Превращайте объекты Python в файлы, которые смогут прочитать другие программы, и читайте их обратно

Главная идея: Работающая программа хранит данные как живые объекты в памяти — словари, списки, числа. Как только программа завершается, эта память исчезает. Сериализация — это превращение таких объектов в обычный текст, который можно сохранить в файл или отправить по сети, а десериализация — загрузка его обратно. В Python есть два встроенных модуля для двух самых распространённых текстовых форматов: json для вложенных, типизированных данных и csv для плоских, табличных данных.
К концу этого урока вы сможете:
  • объяснить, что такое сериализация и почему файлы переживают память программы,
  • преобразовывать объекты Python в текст JSON и обратно с помощью json.dumps/loads и читать/записывать файлы через json.dump/load,
  • читать и предсказывать соответствие типов Python ↔ JSON (и его острые углы: кортежи, None, ключи словарей),
  • читать и записывать табличные данные с помощью csv.reader/writer и более удобных csv.DictReader/DictWriter,
  • избегать классических ловушек CSV — ошибки с пустыми строками, того что всё является строкой, и кодировки,
  • осознанно выбирать JSON или CSV под конкретную задачу, а не по привычке.

1. Структурированные данные и сериализация

Представьте данные вашей программы как содержимое комнаты: мебель, коробки, провода — всё расставлено и связано. Чтобы перевезти это в другой дом, нельзя телепортировать комнату; вы упаковываете всё в подписанные коробки (формат, понятный грузчикам), везёте коробки, а затем распаковываете на другом конце, чтобы восстановить расстановку. Сериализация — это упаковка объектов из памяти в плоский поток текста; десериализация — распаковка этого текста обратно в живые объекты.

Почему текст? Потому что словарь Python в памяти — это клубок указателей, понятный только этому процессу Python. Текстовый файл, напротив, универсален — его могут прочитать электронная таблица, приложение на JavaScript, инструмент импорта базы данных или редактор коллеги. JSON и CSV — это два согласованных текстовых формата:

  • JSON (JavaScript Object Notation) хранит вложенные, типизированные данные: объекты внутри списков внутри объектов. Он почти один в один соответствует словарям и спискам Python, поэтому это язык по умолчанию для веб-API и файлов конфигурации.
  • CSV (Comma-Separated Values, значения, разделённые запятыми) хранит одну плоскую таблицу: строки и столбцы, как один лист электронной таблицы. Он компактен, и его открывает любая табличная программа, но в нём нет вложенности и типов.
Ключевой момент: оба формата — это просто текст. Файл JSON и файл CSV можно открыть в Блокноте и прочитать глазами. Модули лишь автоматизируют скучное и подверженное ошибкам преобразование в обе стороны.

Продолжите этот урок на YourAIZone

В полном уроке — объяснение целиком, разобранные примеры, частые ошибки, тесты с мгновенной проверкой и ИИ-репетитор. Начните сразу как гость или создайте аккаунт, чтобы сохранять прогресс.

В полном уроке

  • Объяснение целиком
  • Разобранные примеры
  • Частые ошибки и как их избежать
  • Тестовые вопросы: 15
  • ИИ-репетитор, который отвечает на вопросы по теме
  • Отслеживание прогресса для ученика, родителей и учителя