94 votes

Comment convertir CSV en JSON dans Node.js

J'essaie de convertir un fichier csv en fichier json. J'utilise .

Exemple CSV :

a,b,c,d
1,2,3,4
5,6,7,8
...

JSON souhaité :

{"a": 1,"b": 2,"c": 3,"d": 4},
{"a": 5,"b": 6,"c": 7,"d": 8},
...

J'ai essayé la bibliothèque node-csv parser, mais le résultat ressemble à un tableau et non à ce que j'attendais.

J'utilise Node 0.8 et express.js et j'aimerais avoir une recommandation sur la façon d'accomplir cela facilement.

0voto

ganqqwerty Points 542

Utilisation bibliothèque d'analyseur csv Je vous explique plus en détail comment l'utiliser. aquí .

var csv = require('csv');
csv.parse(csvText, {columns: true}, function(err, data){
    console.log(JSON.stringify(data, null, 2));
});

0voto

MD SHAYON Points 93

Le module csvtojson est un parseur csv nodejs complet pour convertir les csv en json ou en tableaux de colonnes. Il peut être utilisé comme bibliothèque node.js / outil en ligne de commande / ou dans un navigateur. Voici quelques fonctionnalités :

/** csv file
a,b,c
1,2,3
4,5,6
*/
const csvFilePath='<path to csv file>'
const csv=require('csvtojson')
csv()
.fromFile(csvFilePath)
.then((jsonObj)=>{
    console.log(jsonObj);
    /**
     * [
     *  {a:"1", b:"2", c:"3"},
     *  {a:"4", b:"5". c:"6"}
     * ]
     */ 
})

// Async / await usage
const jsonArray=await csv().fromFile(csvFilePath);

0voto

Green Points 73

J'ai converti un gros fichier csv (315 MB) en json en installant le programme csvtojson et en utilisant le code ci-dessous :

const fs = require('fs')
const Converter = require('csvtojson').Converter
const csvConverter = new Converter({
    constructResult:false,
    downstreamFormat:"array",
})

csvConverter.subscribe=function(json,row,index){
    json["rowIndex"]=index
};

const readStream = fs.createReadStream('./data.csv') // my csv file
const writeStream = fs.createWriteStream('./data.json') // my new json file

readStream.pipe(csvConverter).pipe(writeStream)

Le fichier json résultant est au format souhaité :

[
{"a": 1,"b": 2,"c": 3,"d": 4},
{"a": 5,"b": 6,"c": 7,"d": 8},
]

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X