Javascript 错误:分析CSV时,第5行的列数不一致
我试图解析一个使用制表符作为列分隔符的CSV文件。我得到的错误如下:Javascript 错误:分析CSV时,第5行的列数不一致,javascript,node.js,csv,parsing,fs,Javascript,Node.js,Csv,Parsing,Fs,我试图解析一个使用制表符作为列分隔符的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/Desk
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语句中输入每一列 下面是一个示例代码。请安装
应
节点模块以运行此代码
- 使用
函数创建解析器parser()
- 使用
函数在其内部写入Write()
- 使用.finish()上的
检索数据。
有关更多信息,请参见此处,这里是一个示例代码。请安装
应
节点模块以运行此代码
- 使用
函数创建解析器parser()
- 使用
函数在其内部写入Write()
- 使用.finish()上的
检索数据。
有关更多信息,请参见此处您的CSV文件是否有效,每行的列数是否一致?@koolkat-是的,我假设它是有效的。但是,有些列不包含特定行的值。这可能会导致此问题吗?这不应该导致问题,因为空值被解释为空字符串
'
。尝试使用在线CSV linter
验证您的CSV
。您“假设”它是有效的吗?也许你可以用你的问题来展示一个失败文件的例子(或者仅仅是前六行,因为错误提到了第5行)。你的CSV文件有效吗?每行的列数一致吗?@koolkat-是的,我假设它有效。但是,有些列不包含特定行的值。这可能会导致此问题吗?这不应该导致问题,因为空值被解释为空字符串'
。尝试使用在线CSV linter
验证您的CSV
。您“假设”它是有效的吗?也许您可以将您的问题显示为失败文件的示例(或者仅显示前六行,因为错误提到了第5行)。
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]);
});