Как получить и обработать данные в программировании: формы, таблицы, файлы, БД

Иван Корнев·13 октября 2026·⏱4 мин

Чтобы понять, как получить и обработать данные в программировании, используйте HTTP-методы для веб-форм, библиотеку pandas для таблиц, функцию open() для файлов и SQL-запросы для баз данных.

Оглавление

Веб-формы: сбор и отправка данных

Данные из веб-форм передаются по протоколу HTTP (чаще всего методом POST) в виде текста. Основные форматы передачи: application/x-www-form-urlencoded, multipart/form-data или JSON. На стороне сервера они принимаются через объекты запроса (например, request.form или request.json в фреймворках Flask/FastAPI). Для отправки данных из скрипта используются библиотеки requests (Python) или fetch (JavaScript).

Юридический риск и ограничения Если сбор подразумевает персональные данные (ФИО, телефоны, email), действует требование 152-ФЗ: базы данных с ПДн граждан РФ должны физически находиться на серверах на территории России. Использование зарубежных SaaS-сервисов (Google Sheets API, Airtable, Typeform) может быть ограничено: оплата российскими картами не проходит, а доступ к API иногда требует обходных путей. Рекомендуется использовать локальные аналоги (Яндекс.Формы, локальные Excel/CSV) или оплачивать сервисы через зарубежные карты.

Риск взлома При обработке данных, полученных из форм, никогда не подставляйте значения напрямую в SQL-запрос (через склеивание строк). Используйте параметризованные запросы (знаки ? или %s), иначе приложение будет уязвимо к SQL-инъекциям, и злоумышленник сможет удалить или украсть всю базу.

Таблицы: чтение и обработка CSV и Excel

Файлы CSV — это обычный текст, где колонки разделены запятыми или табуляцией. Файлы Excel (.xlsx) — это ZIP-архивы с XML-разметкой внутри, их нельзя открыть как обычный текст. Для чтения, фильтрации и обработки табличных данных стандартом является библиотека pandas (Python), которая превращает таблицу в объект DataFrame.

Обработка больших объемов Для очень больших таблиц (миллионы строк) стандартный pandas может не поместиться в оперативную память. В этом случае используют чтение файла частями (chunksize в pandas) или переход на специализированные форматы данных, такие как Parquet.

Файлы: работа с текстом и структурированными данными

Текстовые файлы читаются встроенными средствами языка (в Python — функция open()). Если внутри файла структурированные данные (JSON, XML), их нужно «распарсить» (превратить из текста в объекты языка: словари и списки) с помощью встроенных модулей (json, xml.etree).

Риск потери данных и блокировки При записи в файл или БД без предварительного бэкапа или проверки условий можно случайно перезаписать или удалить существующую информацию. При работе с файлами всегда используйте конструкцию with open(...) as f: (в Python). Это гарантирует, что файл корректно закроется и не заблокируется операционной системой, даже если в процессе чтения произойдет ошибка.

Кодировка российских источников При чтении CSV и текстовых файлов из российских источников (выгрузки из 1С, старые Excel) критически важно указать правильную кодировку. Чаще всего это utf-8, но очень часто встречается windows-1251 или cp866. Если при чтении вы видите «кракозябры» — меняйте параметр encoding в функции чтения.

Базы данных: SQL и подключение из кода

Взаимодействие с реляционными БД идет через SQL-запросы. Для обучения и простых задач достаточно встроенной SQLite (это один файл на диске). Для серьезных проектов используется PostgreSQL. В Python для работы применяют встроенный модуль sqlite3 или ORM-библиотеки (например, SQLAlchemy), которые позволяют писать запросы кодом, а не чистым SQL.

Инфраструктурные и юридические риски При размещении баз данных в облаке вместо ушедших или сложных для оплаты AWS/Heroku используются локальные провайдеры: Яндекс.Облако, Selectel, Timeweb, Beget. Помните о требовании 152-ФЗ: хранение персональных данных россиян на серверах вне РФ влечет штрафы. Также избегайте «хардкода» (вшивания прямо в текст программы) API-ключей и паролей от БД, что приводит к их утечке при публикации кода.

Частые ошибки

  • Кракозябры при чтении файлов: вызваны неверной кодировкой. Решение: явно указывать encoding='windows-1251' или encoding='cp866' при открытии файлов из российских систем.
  • Блокировка файла операционной системой: возникает при открытии файла без конструкции with. Решение: всегда использовать with open(...) as f:.
  • SQL-инъекции: возникают при склеивании строк для формирования запроса. Решение: использовать параметризованные запросы (? или %s).
  • Нехватка оперативной памяти: при загрузке огромных CSV в pandas. Решение: применять chunksize или формат Parquet.

FAQ

Как безопасно хранить пароли от баз данных?
Никогда не вшивайте их в код («хардкод»). Используйте переменные окружения или специализированные менеджеры секретов, чтобы избежать утечки при публикации кода.

Можно ли использовать Google Sheets API для сбора данных в России?
Да, но с оговорками: оплата премиум-тарифов российскими картами не проходит, а доступ к API иногда требует обходных путей. Для стабильной работы лучше выбрать Яндекс.Формы или локальные CSV/Excel.

Почему файл .xlsx нельзя прочитать как обычный текст?
Потому что это ZIP-архив с XML-разметкой внутри. Для его корректного чтения используйте библиотеку pandas или специализированные парсеры Excel.

Где физически должны храниться данные, собранные через веб-формы с граждан РФ?
Согласно 152-ФЗ, базы данных с персональными данными граждан РФ должны физически находиться на серверах на территории России (например, Яндекс.Облако, Selectel, Timeweb, Beget).