错误:第5行的列数不一致 - 解析CSV时

时间:2017-08-28 21:36:19

标签: 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/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语句中输入每一列吗?

1 个答案:

答案 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.