【问题标题】:How to read and use a column in a local CSV file with javascript?如何使用 javascript 读取和使用本地 CSV 文件中的列?
【发布时间】:2020-10-15 12:51:30
【问题描述】:

我有一个 CSV 文件,我只需要在终端中显示第二列。我正在使用javascript和nodejs。我的 CSV 文件位于本地文件夹中。我的 CSV 数据如下所示:

name,emails,name1,email1,name2,email2,name3,email3,name4,email4,name5,email5

这就像一个包含两列六行的数组,第一个包含名称,第二个包含电子邮件。我只想返回没有终端标题的电子邮件列表。稍后我将不得不使用此电子邮件列表将其与其他数组进行比较。

我认为papaparse 是可能的,但我不明白如何使用它。 我也知道fs模块可以用来读取整个文件。

如果可以像这样转换带有或不带有键/值的数组中的数据,那也将是完美的:

[ name:'name1', email:'email1', name:'name2', email:'email2', name:'name3', email:'email3', name:'name4', email:'email4', name:'name5', email:'email5' ]

知道我还必须使用另一个包含 9 列和 960 行的 CSV 文件。

【问题讨论】:

    标签: javascript node.js arrays csv papaparse


    【解决方案1】:

    此代码应以您提到的格式解析 CSV 文件,例如

    test.csv

    姓名,电子邮件 姓名 1,电子邮件 1 姓名 2,电子邮件 2 姓名 3,电子邮件 3 姓名 4,电子邮件 4 姓名 5,电子邮件 5

    app.js

    const Papa = require('papaparse');
    const fs = require("fs");
    
    let csvData = fs.readFileSync("test.csv", "utf-8");
    csvData = csvData.trim().replace(/([^,]+),\s*([^,]+),\s*/gi, '$1,$2\n');
    console.log("Adjusted csv:", csvData);
    
    let { meta, data } = Papa.parse(csvData, { header: true });
    
    console.log("Parsed data:", data);
    console.log("Metadata:", meta);
    

    解析后的数据如下所示:

    [
      { name: 'name1', emails: 'email1' },
      { name: 'name2', emails: 'email2' },
      { name: 'name3', emails: 'email3' },
      { name: 'name4', emails: 'email4' },
      { name: 'name5', emails: 'email5' }
    ]
    

    【讨论】:

    • 不完全是,但我认为这是因为我的 CSV 很奇怪,它给了我这样的东西:
    • 是的,它看起来一模一样
    • 我已更新代码以将数据拆分为行,以便 PapaParse 可以处理它。
    • 对不起,我没有看到其他的console.log
    • 非常感谢,这正是我想要的
    猜你喜欢
    • 1970-01-01
    • 2016-10-02
    • 1970-01-01
    • 1970-01-01
    • 2014-06-13
    • 2015-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多