Estoy usando pdfplumber para extraer datos de una tabla, pero hay un quark extraño en la función extract_table que me gustaría probar y corregir ajustando la configuración de pdfplumber para no tener que recurrir a expresiones regulares. La siguiente tabla existe en un documento pdf y cuando se extrae Page.extract_table()
, obtengo el siguiente resultado:
[['METER\nNUMBER', 'METER\nTYPE', 'METER\n SIZE', 'SERVICE\nPERIOD', 'SERVICE\nDAYS', 'BEGIN\nREAD', 'END GALLONS BILLED\nREAD (PER 1,000)'], ['19XXXXXX', 'Water', '3/4"', '10/02/2021 — 10/26/2021', '25', '1.9', '5.3 3.4']]
Observe que las dos últimas columnas hacen algún tipo de concatenación extraña, pero ninguna de las configuraciones de https://github.com/jsvine/pdfplumber#table-extraction-settings altera mejor la salida (casi todas empeoran el problema o tienen ningún impacto). Desafortunadamente, no puedo publicar el pdf original aquí, pero espero que alguien esté lo suficientemente familiarizado con pdfplumber como para haber visto o resuelto un problema similar a este. La salida deseada es:
[['METER\nNUMBER', 'METER\nTYPE', 'METER\n SIZE', 'SERVICE\nPERIOD', 'SERVICE\nDAYS', 'BEGIN\nREAD', 'END\nREAD', 'GALLONS BILLED\nREAD (PER 1,000)'], ['19XXXXXX', 'Water', '3/4"', '10/02/2021 — 10/26/2021', '25', '1.9', '5.3', '3.4']]
Gracias
Solución del problema
Terminé con este código pero parece pirateado. Voy a seguir tratando de modificar la configuración de la tabla.
table = pdf.extract_table()
# Clean up extract_table()
table[0][6] = re.sub(r"END|READ|\n", "", table[0][6]).strip()
table[0].insert(6, "END READ")
fixed_values = table[1][6].split(" ")
del table[1][6]
table[1] += fixed_values
No hay comentarios.:
Publicar un comentario