Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 错误:分析CSV时,第5行的列数不一致_Javascript_Node.js_Csv_Parsing_Fs - Fatal编程技术网

Javascript 错误:分析CSV时,第5行的列数不一致

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

我试图解析一个使用制表符作为列分隔符的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语句中输入每一列

下面是一个示例代码。请安装
节点模块以运行此代码

  • 使用
    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]);
});