如何在node.js中将.csv转换为array/json/string
我想在node.js/express中使用一个csv文件。如何将文件转换为array/json/string类型的变量。我试过:如何在node.js中将.csv转换为array/json/string,node.js,csv,express,Node.js,Csv,Express,我想在node.js/express中使用一个csv文件。如何将文件转换为array/json/string类型的变量。我试过: fs.readFile('Resource.csv', function(err, data) { console.log(data)} 我还尝试了很多其他的东西,但都不适合我。如果重要的话,数据是多行的 展开我的评论(来自csvtojson文档) 使用npm i安装--保存csvtojson 然后使用如下模块: CSV文件: a,b,c 1,2,3 4,5
fs.readFile('Resource.csv', function(err, data) {
console.log(data)}
我还尝试了很多其他的东西,但都不适合我。如果重要的话,数据是多行的 展开我的评论(来自csvtojson文档)
使用npm i安装--保存csvtojson
然后使用如下模块:
CSV文件:
a,b,c
1,2,3
4,5,6
JS代码:
const csvFilePath='<path to csv file>' // Resource.csv in your case
const csv=require('csvtojson') // Make sure you have this line in order to call functions from this modules
csv()
.fromFile(csvFilePath)
.then((jsonObj)=>{
console.log(jsonObj);
})
我试过了,得到了:TypeError:csv(…).fromFile(…)。那么你确定你安装并需要npm模块吗?是的@另外,如果您需要带有
const csvtojson=require('csvtojson')
的模块,那么您应该使用csvtojson(…).fromFile(…)。然后我会在控制台中获得奇怪的字符。可能编码错误。请使用fs.readFileSync('Resource.csv',)
。控制台通常不能正确使用utf-8
(和国家本地化)。如果csv的任何字段包含“,”字符,则此解决方案不起作用。很好的解决方案-非常简洁。此解决方案仅适用于大多数情况下最简单的csv。根据csv值可以引用并包含\n
。您应该使用特殊的库进行生产。
[
{a:"1", b:"2", c:"3"},
{a:"4", b:"5". c:"6"}
]
var fs = require('fs');
var data = fs.readFileSync('Resource.csv')
.toString() // convert Buffer to string
.split('\n') // split string to lines
.map(e => e.trim()) // remove white spaces for each line
.map(e => e.split(',').map(e => e.trim())); // split each line to array
console.log(data);
console.log(JSON.stringify(data, '', 2)); // as json