Что это?
Программа, которая запускается из командной строки и автоматически извлекает данные из PDF-квитанций коммунальных услуг (в CSV / Excel).
Контекст — Зачем?
Чтобы проверить правильно ли начислены суммы в квитанциях, - из каждой квитанции мне нужны одинаковые данные: объем, тариф, сумма. НО: все квитанции приходят от разных компаний и имеют разный формат.
- Могу ли я одной программой из каждой выбирать только нужные мне значения и получить все вместе в одной маленькой таблице Excel?
Spoiler: Да.
Цель => Решение
Автоматизировать извлечение данных из PDF в приведенный к общему виду Excel-отчёт.
Логика — Как это работает
- Загружаются PDF-файлы из папки
- Определяется тип поставщика (электроэнергия, вода, ТКО и т.д.)
- Извлекаются ключевые значения:
- объём потребления
- тариф
- сумма начислений
- Данные приводятся к единому формату
- Формируется итоговый файл:
[схемка]
Сбор и подготовка данных
- полученные квитанции сохраняются в одну папку
типы квитанций
- Электроэнергия
- Водоснабжение
- ТКО (вывоз мусора)
- Капитальный ремонт
- Общедомовые услуги
Результат
[gif с демонстрацией]
- Единая структурированная таблица для дальнейшей проверки начислений
- Приятный трепет в груди - это ощущение, когда одной строкой кода на глазах происходит трансформация
Сложности и решения
Основная сложность — различие форматов PDF у разных поставщиков. Поэтому под каждый тип квитанции (каждый отдельный PDF-файл) адаптировала отдельную функцию.
Т.е. решение пока не унифицировано - нельзя взять любую квитанцию и получить из нее данные.
Под каждый новый вид квитанции код нужно адаптировать. Пока что.
На будущее — Идеи для проработки
- сохранение квитанций через API сайтов поставщиков или приложения ЖКХ
- подключение базы данных вместо файлов
Инструменты
- Python — основная логика
- pdfplumber — извлечение данных из PDF
- pandas — обработка таблиц
- Excel
Файлы
[ссылка на репозиторий]