首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将本地CSV文件读取到2D数组中- Javascript

将本地CSV文件读取到2D数组中- Javascript
EN

Stack Overflow用户
提问于 2020-01-15 02:24:57
回答 3查看 498关注 0票数 1

希望我能得到一些帮助,将csv文件读取到节点应用程序的二维数组中。

我还看到过其他问题的答案,它们建议使用papaparse、jquery-csv和csv npm包。我已经阅读了每个解决方案的文档,并不知道我的程序将在流程中的何处读取csv。

我的documents文件夹中有一个csv文件:例如C:\Documents\Folder\data.csv。

我希望我可以让程序读取data.csv,它的格式如下

代码语言:javascript
运行
复制
header0 header1 header2 header3 header4 header5 header6 header7 header8 header9   
data    data    data    data    data    data    data    data    data    data   
data    data    data    data    data    data    data    data    data    data   

并将其放入名为myarray的数组中

我的数组会给我header9等等。

下面是我尝试jquery-csv时得到的结果

代码语言:javascript
运行
复制
var fs = require('fs');
var csv = require('./jquery.csv.js');
var sample = 'C:\Documents\Folder\data.csv';

var myarray = $.csv.toArrays(sample);

我收到的错误是

代码语言:javascript
运行
复制
ReferenceError: $ is not defined
    at Object.<anonymous> (C:\Users\0121160\Documents\Nodejs\readcsv.js:7:14)
[90m    at Module._compile (internal/modules/cjs/loader.js:959:30)[39m
[90m    at Object.Module._extensions..js (internal/modules/cjs/loader.js:995:10)[39m
[90m    at Module.load (internal/modules/cjs/loader.js:815:32)[39m
[90m    at Function.Module._load (internal/modules/cjs/loader.js:727:14)[39m
[90m    at Function.Module.runMain (internal/modules/cjs/loader.js:1047:10)[39m
[90m    at internal/main/run_main_module.js:17:11[39m

注意:我对javascript,node,jquery的使用经验非常少。

任何帮助都将不胜感激。

谢谢!

EN

回答 3

Stack Overflow用户

发布于 2020-01-15 02:33:16

来自https://www.npmjs.com/package/jquery的。

要在Node中包含jQuery,首先要与npm一起安装。

npm install jquery

要使jQuery在节点中工作,需要一个包含文档的窗口。由于Node本身不存在这样的窗口,因此可能会被jsdom等工具模仿。这对于测试目的很有用。

代码语言:javascript
运行
复制
require("jsdom").env("", function(err, window) {
    if (err) {
        console.error(err);
        return;
    }

    var $ = require("jquery")(window);
});
票数 0
EN

Stack Overflow用户

发布于 2020-01-15 02:34:52

错误显示为$ is not defined,因此您需要使用var myarray = csv.toArrays(sample);

由于您没有导入分配给变量$的任何内容,因此变量$对您的程序没有任何意义。

我也怀疑var csv = require('./jquery.csv.js');能否正常工作,您可能必须先npm install jquery-csv,然后将var csv = require('jquery-csv')导入到您的模块中。

票数 0
EN

Stack Overflow用户

发布于 2020-01-15 02:40:19

jQuery的设计目的是帮助在网页上嵌入JavaScript来做一些常见的事情。jQuery CSV是它的一个插件。

由于您编写的软件要在Node.js上运行,而不是在网页上运行,因此jQuery并不是库…的理想选择所以不要使用它,也不要使用插件。

获取针对csv-parser等Node.js优化的CSV解析器

代码语言:javascript
运行
复制
const fs = require('fs');
const csv = require('csv-parser')

const path = 'C:/Documents/Folder/data.csv';
const results = [];

fs.createReadStream(path)
  .pipe(csv())
  .on('data', (data) => results.push(data))
  .on('end', () => {
    console.log(results);
  });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59739683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档