2016-05-11 6 views
1

Ich versuche, eine csv-Datei mit Zeilenumbrüchen (\ n) in den Feldern zu verarbeiten. Jedes Feld ist in doppelte Anführungszeichen eingeschlossen. Gibt es ein Paket node.js, das mit diesem Typ von csv umgehen kann?Verarbeitung von CSV-Dateien mit Zeilenumbrüchen in Feldern - node.js

Ich habe versucht, es mit readline in Knoten zu analysieren. Es erkennt die Zeilen als separate Datensätze, obwohl sie sich im selben Feld befinden.

+0

haben Sie versucht json-2-csv? –

+0

Nur um klar zu sein, ist das Trennzeichen tatsächlich ein Komma in Ihrer CSV? – jsejcksn

+0

ja, Komma abgegrenzte CSVs. Alle Felder sind in Anführungszeichen eingeschlossen. –

Antwort

0

csv verarbeiten kann Zeilen Zeilenumbrüche enthalten:

'use strict' 

let csv = require('csv'); 

let str = `id;name;desc 
"1";"name1";"desc 
on multiple 
line" 
"2";"name2";"desc2"`; 

csv.parse(str, 
    { 
     delimiter: ';', // default is , 
     columns: true, // if the first of the csv line is headers 
    }, 
    (err, data) => { 
     if (err) console.log(err); 
     console.log(JSON.stringify(data, null, 3)); 
    }); 

/* output: 
[ 
    { 
     "id": "1", 
     "name": "name1", 
     "desc": "desc\non multiple\nline" 
    }, 
    { 
     "id": "2", 
     "name": "name2", 
     "desc": "desc2" 
    } 
] 
*/ 

/* without column: true 
[ 
    [ 
     "id", 
     "name", 
     "desc" 
    ], 
    [ 
     "1", 
     "name1", 
     "desc\non multiple\nline" 
    ], 
    [ 
     "2", 
     "name2", 
     "desc2" 
    ] 
] 
*/ 
+0

Die Ausgabe hier ist ein Array von JSON-Objekten. Ich fand, dass 'Fast-CSV' ein weiteres Paket ist, das solche CSVs verarbeiten kann. Es unterstützt Ausgabe als String-Arrays, das war das Format, das ich wollte. –

+0

@AthulJayson, wenn Sie 'column: true' entfernen (oder auf' false' setzen), gibt 'csv' auch ein Array von String-Arrays. Ich habe meine Antwort mit der Ausgabe ohne 'column: true' aktualisiert. – Shanoor

Verwandte Themen