【问题标题】:Using Node.js, how can I add values from a column in the CSV file?使用 Node.js,如何从 CSV 文件的列中添加值?
【发布时间】:2018-12-02 10:57:26
【问题描述】:

我对 node.js 比较陌生,并且正在做一个小项目并且被卡住了。我正在获取一个解压缩的 csv 文件,并尝试使用节点添加指定列中的值。

这是我的代码:

var fs = require('fs');
var csv = require('fast-csv');

var stream = fs.createReadStream("my.csv");

var sum = 0;

csv
     .fromStream(stream, { headers: [, , "total_master_images", , , , , , , , , , , , , , , , , , , , , ] })
     .on("data", function(data) {
         console.log(data);
      })
     .on("end", function() {
         console.log("--------------------------------");
      });

还有一些输出:

{ total_master_images: 'total_master_images' }
{ total_master_images: '1' }
{ total_master_images: '2' }
{ total_master_images: '2' }
{ total_master_images: '2' }
{ total_master_images: '466' }
{ total_master_images: '990' }
{ total_master_images: '5953' }
{ total_master_images: '1473' }

打印时我也无法摆脱列标题,但这没什么大不了的。任何帮助将不胜感激。

【问题讨论】:

    标签: javascript json node.js csv


    【解决方案1】:

    从外观上看,data 事件在解析一行时发生,end 发生在它们全部完成时。您可以做的是在data 中添加总和,然后在end 中注销总和。

     .on("data", function(data) {
         // Convert from string to number
         var num = Number(data.total_master_images)
    
         // If the number is not valid, it'll end up being `NaN`, so check if it's not NaN first
         if (!Number.isNaN(num)) {
           sum += num
         }
      })
     .on("end", function() {
         console.log("The sum is " + sum);
      });
    

    【讨论】:

    • 这很完美!非常感谢你,你是一个救生员。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-19
    相关资源
    最近更新 更多