CSV parser fails with mixed quoting and non-standard row_sep
Nessuno ha ancora preso questa issue.
- Lingua principale
- Ruby
- Stelle
- 218
- Fork
- 135
- Merge medio
- 15h 40m
- PR unite (30g)
- 1
Descrizione
opts = {row_sep: "|\n", col_sep: ","}
CSV.parse(CSV.generate(opts) { |csv|
csv << ["yes, it's true"];
csv << [ "CSV is broken"];
csv << ["uhoh!"]; }, opts)
In the example above, the parser will raise a CSV::MalformedCSVError (Unquoted fields do not allow new line <"\n"> in line 2.) error.
It will succeed if any of the following are done:
- pass
force_quotes: truetogenerate - add a comma in each row
- remove the comma from the first row
- use
row_sep: "\n"
Therefore, the problem seems to be that a non-standard row_sep + lines with a field being quoted in one row and unquoted in the next.
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia riproducendo l’esempio con CSV.generate e CSV.parse usando row_sep: "|\n", quindi confronta le righe tra virgolette e quelle senza virgolette con i casi che hanno esito positivo. Traccia il modo in cui il parser gestisce i separatori di riga e la quotatura dei campi; il lavoro è completato quando l’input con quotatura mista viene analizzato senza CSV::MalformedCSVError, mentre le alternative esistenti rimangono valide.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- ruby
- Ambito
- data
- Tipo di issue
- Bug
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 45/100