coolwolf0 - Северный наблюдатель (coolwolf0) wrote,
coolwolf0 - Северный наблюдатель
coolwolf0

Categories:

Ода во славу стандартизации форматов

Мой банк давно поддерживает экспорт списка операций текущего счета в формат Excel. Внутри это не совсем Excel, а гибрид HTML и XMLNS (типа, для простоты текстовой генерации). Я примерно раз в месяц скачиваю такой файлик для контроля движений на счету. И вот этих табличек накопилось целые кучи, аж с 2008 года. Поставил я перед собой цель: избавиться от неудобных файликов и слить всё в одну базу данных. Цель - не рыскать в поисках той или иной транзакции, объединить естественным образом пересекающиеся по времени отрезки и получить сплошную картину по годам.

И вот тут встала проблема совместимости форматов. Дело в том, что с 2008 года банк успел трижды поменять внутренний формат этих самых файлов. С точки зрения Excel совместимость сохранилась, но вот формально распарсить содержимое с первой попытки не удалось. В качестве парсера использовался Пайтон-модуль со странным названием "BeautifulSoup". Как оказалось, его смутил несовместимый трюк с тэгами, когда <img ...> представляется в виде <!img ...>. В результате всё дерево тэгов "поплыло" и содержимое оказалось недоступным. Пришлось применить к текстовому буферу глобальную замену тэга с восклицательным знаком на его же, но без богопротивной закорючки. После этого (немного поигравшись с атрибутами и фильтрацией пустых строк) удалось на 100% распознать все три вариации форматов. Это чудо: без танцев с бубнами, путём установки стандартного модуля, удалось прочитать данные более чем 10-летней давности!

Ясное дело, что будь таблички в каком-нибудь CSV, таких глупостев вообще удалось бы избежать, но в любом случае, победа стандартов очевидна. Теперь осталось придумать, во что эти данные конвертировать. Пока вырисовывается очевидное решение - SQLite3. Тем более, что абстрактный класс по ведению баз с произвольной схемой я уже накатал (для каталогизатора домашних коллекций).

Так что продолжение следует...
Tags: дыбр, компьютеры
Subscribe

  • В основном, хорошие новости (рецензии)

    Кино Финч - Finch Фильм не простой по задумке и тем не менее очень удачно воплощённый. Главный герой выступает в роли пост-апокалиптического…

  • Майкрософт, туды их растуды!

    У меня относительно новый рабочий лептоп. Как только получил его, сразу обрадовался - все приложения запускались с невиданной скоростью, система…

  • Десантница!

    Вчера съездили к дочке в часть на празднование окончания курса. На церемонии новобранцы, прошедшие профессиональную подготовку, были торжественно…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 2 comments