Dato un file CSV che ha caratteri di ritorno/ritorno in alcuni campi, come si analizzano i dati senza dividere un campo in più righe.Come analizzare i dati CSV che contengono nuove righe nel campo utilizzando JavaScript
Esempio dati CSV:
ID;Name;Country;ISO-2;Address;Latitude;Longitude
022wje3;Europa;Italy;IT;"Viale Kennedy 3
34073 Grado";"45,67960";"13,40070"
024oua5;Hiberia;Italy;IT;"Via XXIV Maggio 8
00187 Rome";"41,89720";"12,48680"
028gupn;Regal Riverside;Hong Kong;HK;"34-36 Tai Chung Kiu Road
Shatin
Hong Kong";"22,38260";"114,19600"
02j7qry;Okaliptus Holiday Villas Apart;Turkey;TR;"Sevket Sabanci Caddesi No. 70
Bahçelievler Mevkii
Turgutreis";"37,02130";"27,25120"
02pc99z;California Apartementos;Spain;ES;"Prat d'en Carbó
43840 Salou";"41,07620";"1,14667"
02tu1jz;Elvis Presley's Heartbreak;United States;US;"3677 Elvis Presley Blvd.
Memphis
Tennessee 38116";"35,04850";"-90,02710"
Nota: i campi sono in realtà separati da virgola
;
perché l'indirizzo può contenere virgole
Ogni riga dispone di 7 campi, ma non vogliamo analizzare erroneamente i dati in un campo contenente caratteri di nuova riga come più righe ...
Abbiamo trovato alcune risposte Perl-centrati su StackOverflow:
- How to parse CSVs with newline and commas inside a field in Perl?
- Text::CSV parsing when data contains newline
ma io sono un po 'arrugginito su Perl e non hanno scoperto una risposta JS-focalizzata.
Le nuove linee racchiuse tra virgolette doppie non sono la fine del record. L'hai preso da uno di quei collegamenti Perl? E, se non capisci come ha fatto Ben Nadel, non saprai come eseguire un'espressione regolare per casi non standard. È meglio cercare SO per l'analisi delle espressioni regolari csv. Ne ho pubblicato parecchi anch'io. – sln
Esattamente. le nuove linee che si trovano tra virgolette sono sempre la stessa riga/campo. Penso di aver capito il 'CSVToArray' e ha risolto il nostro problema immediato. Leggero alcune delle tue risposte RegEx per rispolverare. Grazie! – nelsonic