Ho trovato un problema di analisi CSV con FasterCSV (1.5.0), che sembra un vero bug, ma spero che ci sia una soluzione alternativa.Superare un problema di base con l'analisi CSV utilizzando la gemma FasterCSV
Fondamentalmente, aggiungendo uno spazio dopo il separatore (nel mio caso una virgola) quando i campi sono racchiusi tra virgolette genera un MalformedCSVError
.
Ecco un semplice esempio:
# No quotes on fields -- works fine
FasterCSV.parse_line("one,two,three")
=> ["one", "two", "three"]
# Quotes around fields with no spaces after separators -- works fine
FasterCSV.parse_line("\"one\",\"two\",\"three\"")
=> ["one", "two", "three"]
# Quotes around fields but with a space after the first separator -- fails!
FasterCSV.parse_line("\"one\", \"two\",\"three\"")
=> FasterCSV::MalformedCSVError: Illegal quoting on line 1.
vado pazzo, o si tratta di un bug in FasterCSV?
per Non è lo spazio dicendo che il campo è in realtà non è circondato da citazioni (dal momento che il primo carattere non è una citazione) e che le citazioni dovrebbero essere prese come parte del contenuto del campo? –
Sembra che mi sbaglio. "Se i campi non sono racchiusi tra virgolette doppie, le doppie virgolette potrebbero non apparire all'interno dei campi." - http://tools.ietf.org/html/rfc4180#section-2 –
Hai ragione, non mi rendevo conto che esisteva una "specifica" per CSV ma sembra che ci sia. FasterCSV è davvero molto severo. – Olly