В файле https://github.com/epogrebnyak/rosstat-kep-data/blob/master/data/ind06/tab.csv
можно увидеть, что строка "Добыча полезных ископаемых" повторяется несколько раз и текущий алгоритм не сможет это правильно считать (в некоторых случаях "Добыча полезных ископаемых" это заголовок индикатора, где-то аналог единицы измерения, где-то более сложный случай).
Предполагаемое решение:
[ ] написать функцию, которая будет выдавать кусок файла по имени файла, начальной строке и конечной строке сегмента. Пример сегмент - это таблица 1.2.1. , начальная строка - это ее заголовок, конечная строка - заголовок следующей за ней таблицы.
[ ] задать свой yaml для этого сегмента
[ ] отпарсить сегмент с этим yaml'ом отдельно, записать результата в отдельный файл
[ ] считывать такие дополнительные файлы в базу данных
Комментарий:
также, видимо необходимо разделить весь файл на сегменты, чтобы основной yaml файл не применялся, там где используются дополнительные yaml файлы.
для этого требуется новая логическая структура управления парсингом типа
spec_by_segment=[(None, spec0.yaml)
, ("1.2.1. Индексы производства по видам деятельности", spec_seg1.yaml)
, ("1.3. Продукция сельского хозяйства в хозяйствах всех категорий", spec0.yaml)
... ]
Этот пример означает, что от начала файла до строки, содержащей "1.2.1. Индексы производства по видам деятельности" надо использовать spec0.yaml, от "1.2.1. Индексы производства по видам деятельности" до "1.3. Продукция сельского хозяйства в хозяйствах всех категорий" - использовать spec_seg1.yaml и так далее.
В файле https://github.com/epogrebnyak/rosstat-kep-data/blob/master/data/ind06/tab.csv можно увидеть, что строка "Добыча полезных ископаемых" повторяется несколько раз и текущий алгоритм не сможет это правильно считать (в некоторых случаях "Добыча полезных ископаемых" это заголовок индикатора, где-то аналог единицы измерения, где-то более сложный случай).
Предполагаемое решение:
Комментарий:
Этот пример означает, что от начала файла до строки, содержащей "1.2.1. Индексы производства по видам деятельности" надо использовать spec0.yaml, от "1.2.1. Индексы производства по видам деятельности" до "1.3. Продукция сельского хозяйства в хозяйствах всех категорий" - использовать spec_seg1.yaml и так далее.
Выдержки из https://github.com/epogrebnyak/rosstat-kep-data/blob/master/data/ind06/tab.csv