我正在尝试解析使用制表符作为列分隔符的CSV文件。我收到以下错误:
Error: Number of columns is inconsistent on line 5
at Parser.__push (/Users/mesamhaider/Desktop/workspace/Order_CSV_Parsing_Tool/node_modules/csv-parse/lib/index.js:248:14)
at Parser.__write (/Users/mesamhaider/Desktop/workspace/Order_CSV_Parsing_Tool/node_modules/csv-parse/lib/index.js:469:20)
at Parser._transform (/Users/mesamhaider/Desktop/workspace/Order_CSV_Parsing_Tool/node_modules/csv-parse/lib/index.js:182:14)
at Parser.Transform._read (_stream_transform.js:190:10)
at Parser.Transform._write (_stream_transform.js:178:12)
at doWrite (_stream_writable.js:371:12)
at writeOrBuffer (_stream_writable.js:357:5)
at Parser.Writable.write (_stream_writable.js:274:11)
at ReadStream.ondata (_stream_readable.js:626:20)
at emitOne (events.js:115:13)
我正在使用的代码如下所示:
const fs = require('fs');
const parse = require('csv-parse');
fs.createReadStream('../in/*.csv')
.pipe(parse({delimiter : ' '}))
.on('data', function(row){
console.log(row)
})
代码将远远超过将其记录到控制台,但为了示例的目的,我这样说。另外 - 一旦我解析了这个,就可以在SQL insert语句中输入每一列吗?
答案 0 :(得分:0)
以下是您的示例代码。请安装should
节点模块以运行此代码。
parser()
函数write()
函数使用on.finish()
检索数据。
const fs = require('fs');
const parse = require('csv-parse');
require("should");
var myReadStream = fs.createReadStream('../in/*.csv');
var parser = parse({delimiter: ':'});
parser.write(myReadStream);
parser.on('error', function(err){
console.log(err.message);
});
parser.on('finish', function(){
output.should.eql([Bunch of arrays here from the file]);
});
请点击此处查看更多information.