GOOGLE ADS

domingo, 1 de mayo de 2022

configuración de pdfplomber extract_table

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:
ingrese la descripción de la imagen aquí

[['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

Flutter: error de rango al acceder a la respuesta JSON

Estoy accediendo a una respuesta JSON con la siguiente estructura. { "fullName": "FirstName LastName", "listings...