Tengo una pila de archivos CSV que quiero analizar: el problema es que la mitad tiene comillas usadas como comillas y comas dentro del campo principal. No son realmente CSV, pero sí tienen un número fijo de campos que son identificables. El dialecto = csv. "Excel" ajuste funciona perfectamente en los archivos con el extra "y, caracteres dentro del campo.Archivos CSV con caracteres de comas y comas dentro de los campos
Estos datos son de edad/no compatible. Estoy tratando de empujar un poco de vida en él.
por ejemplo
"AAAAA
AAAA
AAAA
AAAA","AAAAAAAA
AAAAAA
AAAAA "AAAAAA" AAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAA, AAAAA
AAAAAAAAA AAAAA AAAAAAAAAA
AAAAA, "AAAAA", AAAAAAAAA
AAAAAAAA AAAAAAAA
AAAAAAA
"
esta es tropezar el analizador de archivos y genera un error _csv.Error: newline inside string
. me narrrowed se reduce a esto es el problema quitando las comillas desde el interior del segundo campo y el módulo csv.reader analiza el archivo OK
Algunas de los campos son multilínea; no estoy seguro de si es importante saberlo.
He estado hurgando en la configuración del dialecto, y aunque puedo encontrar 'skipinitialspace', esto no parece resolver el problema.
Para que quede claro -. Esto no es válido 'CSV', sus objetos de datos que vagamente seguir una estructura CSV, pero tienen, y "caracteres dentro de la prueba de campo
El lineterminator es \ x0d \ x0a
he probado un número de diferentes personas va a permuations de comillas dobles y la variable citando en el módulo dialecto, pero no puedo conseguir este analiza correctamente.
no puede estar seguro de que una "o", combinación existe solo en los límites del campo.
Este problema solo existe para uno (el último) de varios campos en el archivo, y hay varios miles de archivos.
CSV adecuado utiliza dos caracteres de comillas consecutivas ('" "') para escapar de un carácter de comillas en un campo entre comillas. Alternativamente, el campo podría estar sin comillas y no es necesario escaparse, aunque las comas y las líneas nuevas no pueden aparecer en dicho campo. Las comillas simples como esta no son normalmente válidas. ¿Es posible modificar las opciones del origen de sus datos CSV para ajustarse mejor a las expectativas de la mayoría de los otros lectores CSV (incluido Python)? – SingleNegationElimination
Heredé los datos, y hay muchos ... Así que no puedo hacer nada excepto crear un analizador sintáctico que pueda separarlo de nuevo. –
Los archivos no están dañados, está mal/mal estructurado como un archivo CSV."Heredé los datos" es la "excusa" exacta, eso es exactamente lo que sucede. Los datos son antiguos/abandonados, y quiero resucitarlos. –