Go: encoding / csv: analizar registros incorrectamente con \ r como separador de registros

Creado en 29 abr. 2014  ·  3Comentarios  ·  Fuente: golang/go

Antes de presentar un error, compruebe si se ha solucionado desde el
 último lanzamiento. Busque el rastreador de problemas y compruebe que está ejecutando el
 última versión de Go:

 Ejecute "go version" y compare con
 http://golang.org/doc/devel/release.html Si existe una versión más reciente de Go,
 instálelo y vuelva a intentar lo que hizo para reproducir el problema.

 Gracias.

 ¿Qué se imprime la 'versión go'?
 go versión go1.2.1 darwin / amd64

 (el error probablemente esté en otras versiones, dado que src / pkg / encoding / csv / reader.go
 la explicidad no 
 handle y single \ r (líneas 180-193)


 ¿Qué pasos reproducen el problema?
 Si es posible, incluya un enlace a un programa en play.golang.org.

 http://play.golang.org/p/dr_cz65h_u

 (cambiar el delimitador a \ n soluciona el problema

 1. Leer un archivo CSV con \ r como delimitador de registro


 ¿Qué sucedió?
 http://play.golang.org/p/dr_cz65h_u

 Registro 0, [] cadena {"Uno", "Dos", "Tres \ rCuatro",
 "Cinco", "Seis \ rSiete", "Ocho", "Nueve"}


 ¿Qué debería haber sucedido en su lugar?

 Registro 0, [] cadena {"Uno", "Dos", "Tres"}
 Registro 1, [] cadena {"Cuatro", "Cinco", "Seis"}
 Registro 2, [] cadena {"Siete", "Ocho", "Nueve"}


 Proporcione cualquier información adicional a continuación.
FrozenDueToAge Unfortunate

Comentario más útil

aarrggrggrgrgrg! Estoy seguro de que solo estoy gritando al viento aquí, pero la solución obvia sería agregar un campo al lector para indicar el tipo de final de línea esperado, o incluso agregar una opción para tratar con cualquiera. .csvs de ambos tipos han existido durante decenas de años. Hay muchas, muchas formas de lidiar con esto sin romper la compatibilidad con versiones anteriores.

Todos 3 comentarios

¿Fue útil esta página
0 / 5 - 0 calificaciones