Python-Camelot извлекает пустые таблицы

Я использую Camelot для извлечения нескольких разделов PDF с помощью следующей команды.

cgl_section = camelot.read_pdf(filename, flavor='stream', 
              table_areas=['35,490,155,483', '53,480,110,470', '117,480,155,470', 
                           '38,469,106,456', '39,454,105,445', '38,430,155,420', 
                           '38,418,77, 410'])

Это нормально работает, когда PDF действительно содержит данные в этих областях. Но я не ожидаю данных в каждом проанализированном PDF, некоторые возвращаются пустыми. Я получаю следующую ошибку, когда возвращаемые данные не являются таблицей, а имеют только один столбец.

UserWarning: No tables found in table area 1

а также

ValueError: min() arg is an empty sequence

Мне нужен способ извлечь эти специфические области во всех PDF-файлах, но игнорировать пустые после. Необходимо уметь использовать извлеченные данные упорядоченным образом.

Также открыт для любых других предложений

ТИА

1 ответ

Возможно, вам поможет опция table_regions (введенная в версии 0.7).

https://camelot-py.readthedocs.io/en/master/user/advanced.html

When table_regions is specified, Camelot will only analyze the specified regions to look for tables.

У меня такая же проблема! Это не идеальное решение, но я считаю, что вы можете обойти это, выделив конкретныеtable_area вызов, который может привести к превращению пустой таблицы в свою pdf_readвызов. Сделав это, вы можете сделать то, что было предложено выше, и просто окружитьpdf_readс блоком try_catch. Это придаст вам необходимую надежность.

Другие вопросы по тегам