最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

node js,从csv文件中读取特定列,并将其转换为要在其他函数中使用的数组

网站源码admin21浏览0评论

node js,从csv文件中读取特定列,并将其转换为要在其他函数中使用的数组

node js,从csv文件中读取特定列,并将其转换为要在其他函数中使用的数组

我正在尝试掌握使用节点js解析CSV文件的基本知识。

我编写了一个简单的函数来获取数组中每个字符串的最后一个字符(在我的情况下,它始终是一个数字),并向我显示最大数字:

var ARRAY_OF_ALL_EMAILS = ["email_1", "email_22"]


function GET_NUMBER() {
    let MAXIMAL_NUMBER;
    for (let i = 0; i < ARRAY_OF_ALL_EMAILS.length; i += 1) {
        if (MAXIMAL_NUMBER == null || MAXIMAL_NUMBER == undefined || MAXIMAL_NUMBER < (ARRAY_OF_ALL_EMAILS[i].slice(-1))) {
            MAXIMAL_NUMBER = (ARRAY_OF_ALL_EMAILS[i].slice(-1))
        }
    }
    return MAXIMAL_NUMBER;
}


let MAXIMAL_NUMBER_FINAL = GET_NUMBER();
console.log(MAXIMAL_NUMBER_FINAL);

这段代码按预期工作:

> node index.js
> 2

但是我想做的是解析一个csv文件,仅提取该文件的col2并将值存储在我的变量var ARRAY_OF_ALL_EMAILS;中,因此它的行为就像我以这种方式声明了数组:var ARRAY_OF_ALL_EMAILS = ["email_1", "email_2"]

我设法成功解析了整个csv文件,但是当我尝试仅使用某个列时,我总是会失败。

[能否请您告诉我如何仅使用CSV文件中的特定列并将其存储为数组,以便可以在GET_NUMBER函数中使用它?我知道应该可以通过索引或名称来实现,但对我来说根本行不通。

csv的示例:

col1,col2,col3,col4
aaa1,aaa_1,aaa3,aaa4
bbb1,bbb_2,bbb3,bbb4
ccc1,ccc_3,ccc3,ccc4

为此,我正在使用csv软件包(npm install csv

谢谢

回答如下:

我使用示例数据集改编了https://csv.js/parse/api/sync/中的示例。以下代码未经测试。

const parse = require('csv-parse/lib/sync'); //include

//the dataset
const input = `
col1,col2,col3,col4
aaa1,aaa_1,aaa3,aaa4
bbb1,bbb_2,bbb3,bbb4
ccc1,ccc_3,ccc3,ccc4
`;

//calling the npm package and save to records
const records = parse(input, {
  columns: true,
  skip_empty_lines: true
});
//map the output from csv-parse to the column
const column_two = records.map(rec => rec["col2"]);
发布评论

评论列表(0)

  1. 暂无评论