问题标签 [node-csv-parse]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
123 浏览

node.js - Node.js:CSV 在 mac os(数字)上正确显示,但在 windows(excel)上显示全部混乱

我正在生成一些 csv 文件,生成效果很好,但是当我在 Excel 中打开文件时,它显示所有内容都搞砸了,但是同一个文件在 mac(数字)中打开得很好

下面是我用来生成文件的代码的相关部分。csv.encoding 是utf16le和 csv.delimiter 是\t

下面是数据在excel中的样子

在此处输入图像描述

以下是数据在数字中的样子

在此处输入图像描述

有任何想法吗?

更新 1:看起来 excel 忽略了 col 分隔符,通过手动编辑文件并添加 sep='\t' 作为第一行,我能够解决问题,也可以在 excel 中正确查看文件。

我现在唯一的问题是如何更改上面的代码以添加sep=\t为我的文件的第一行。

谢谢。

0 投票
1 回答
204 浏览

node.js - ReadStream 管道完成后执行循环

不确定标题是否正确,因为我很困惑(在我的头上)......

作为自动化测试的一部分,我正在尝试从 csv 中提取标头以验证这些标头。我正在使用 csv-parse 来读取 csv 文件。

一旦我收集了标题,我就会做一个简单的断言来检查每个标题。使用我在测试脚本中输入的字符串值。

然而目前,FOR 是在 csv 读取和标题被收集之前执行的。我不确定如何在执行循环之前等待它完成。

0 投票
2 回答
1548 浏览

javascript - 使用具有最大行数的nodejs读取csv文件

我正在尝试node.js使用该csv-parser 库读取 CSV 文件。

由于它是一个大文件,我需要检查标题和第一100行并停止该方法并true在一切正常或false数据不符合条件时返回。

我怎样才能做到这一点?

这是我到目前为止所拥有的:

在以前的版本中,我也声明过:var num = 100并在内部对其进行了测试,.on('data', (row) => {...}但它不起作用。

0 投票
0 回答
108 浏览

javascript - JavaScript 中已解析 CSV 的数字列标题

我正在使用Node 的 CSV 包来解析项目中的一些 CSV 文件。我需要能够处理有和没有标题的案例。所以:

我的应用程序不知道列数及其名称。它们要么从标题中读取,要么应该以数字方式生成,例如col0,col1,col2.

这是我遇到问题的地方。我总是希望csvParse的输出采用对象文字形式。当最终用户指示 CSV 具有标题时,这很容易:

但是,当用户指出没有标题行时,似乎不可能以对象文字形式使用程序生成的列标题来结束数据。

的 3 个选项columnsboolean | array | function

  • 通过提供false,返回的数据是一个数组数组,然后我需要将其转换为对象文字形式。不理想!
  • 要提供列名数组,我已经需要知道有多少列......在解析之前,这是没有意义的。我可以解析第一行以获取计数,然后重新开始提供数组,但这似乎很笨拙。
  • 我可以提供一个以编程方式生成列键的函数。例如column => column,这无济于事,因为 a) 没有提供索引,并且 b) 然后忽略第一行,因为它被假定为将列标题转换为所需的列键。

有没有我错过的方法来做到这一点?以下是两种看似笨拙且效率较低的方法。

解析 1 行,然后解析所有

解析成数组数组,然后转换

对我来说,能够指定columns为一个函数是理想的,它被赋予列索引作为参数而不是标题行。

0 投票
0 回答
32 浏览

mysql - Mysql 导出 CSV 然后用 csv-parse 在 nodejs 中解析没有正确找到分隔符

我正在从 mysql 数据库中导出描述字段:

然后在 nodejs 中,我使用 csv-parse 处理文件(在处理异步时必须使用这个文件):

这是一个示例文本:

然而,解析器弄错了,将其拆分为 3 个字段:

第 3 个字段来自 mysql,由于某种原因,该文件以 \N 结尾而不是 \n 保存。我可以通过 sed 以及行尾逗号来删除它,但如果我的查询可以避免这种情况,我总是很感激一些提示。

然而,对于将正文分成 2 个字段,我感到很困惑。我尝试在解析中删除分隔符参数,但同样的问题。我试着放松:真的,一样。

知道我在做什么错吗?

0 投票
1 回答
540 浏览

node.js - nodeJS异步函数解析csv返回数据到其他文件

我正在使用 puppeteer 为内部用户创建一个小工具。

基本上我得到了一个 csv 文件,其中包含一些我“读取”并填写表格的数据。

当我尝试清理我的项目以使其可重用时,我有点挣扎:

我创建了一个文件名 parsecsv.js

在我制作的另一个 Js 文件中

但我从来没有让我的数据只是一个空的对象。如何让我的数据能够与其他功能“共享”?

谢谢

0 投票
2 回答
1059 浏览

google-cloud-functions - 如何使用 Cloud Functions 读取存储在 Google Cloud Storage 中的 CSV 数据

作为与庞大用户群沟通工作的一部分,我每天需要发送超过 75,000 封电子邮件。我正在联系的用户的电子邮件存储在 CSV 文件中。我一直在使用 Postman Runner 通过 SendGrid(电子邮件 API)发送这些请求,但是由于容量如此之大,我的计算机要么变慢,要么 Postman 在批处理完成之前完全崩溃。即使它没有崩溃,通过 Runner 发送这么多 POST 请求也需要 3 个小时以上。

我想将包含电子邮件的 CSV 上传到 Cloud Storage 存储桶中,然后使用 Cloud Functions 访问该文件,为每封电子邮件发送一个 POST 请求。这样,所有的处理都可以由 GCP 处理,而不是由我的个人机器处理。但是,我似乎无法让 Cloud Function 逐行读取 CSV 数据。我尝试使用 Cloud Storage NodeJS 客户端库中的 createReadStream() 以及 csv-parser,但无法使此解决方案正常工作。以下是我尝试过的:

Cloud Function 当前由上传到 Cloud Storage 存储分区触发。

有没有办法在不将文件加载到内存的情况下解决这个问题?Cloud Functions 是向下移动的正确路径,还是使用 App Engine 或其他工具会更好?愿意尝试任何将此流程移至云端的 GCP 解决方案

0 投票
1 回答
460 浏览

node.js - 如何从 Node/Express 中的 Axios GET 请求中读取和解析 CSV 文件?

我正在创建一个使用 axios 向该 URL 发出 GET 请求的 Node/Express 后端:https://marknadssok.fi.se/Publiceringsklient/sv-SE/Search/Search?SearchFunctionType=Insyn&Utgivare=&PersonILedandeSt%C3%A4llningNamn=&Transaktionsdatum.From=&Transaktionsdatum.To=&Publiceringsdatum.From=2021-03-30&Publiceringsdatum.To=2021-03-30&button=export&Page=1

使用常规浏览器时,响应是文件下载,其中包含 CSV 文件中的数据。

有没有办法在我正在构建的 Node/Express 后端读取和解析这个 CSV 文件?我不希望将数据保存到文件系统或任何东西。只需使用诸如“csv-parse”之类的库来将此 CSV 文件转换为文件中每一行的对象。

提前致谢!

编辑:

当我尝试使用 console.log 时直接读取 jsonArray 文件的示例时,它看起来像这样:

在此处输入图像描述

实际的 CSV 文件看起来就像它应该的样子。看这里:

在此处输入图像描述

0 投票
1 回答
37 浏览

node.js - 返回从 CSV 解析器创建的字典

我正在尝试从 csv 文件中提取像 {Name:Value, Name2:Value2,...} 这样的字典数据,如下所示

使用下面的功能

我认为这会返回如下内容:

但是空值是返回的。我确定这与范围有关(如果这是正确的词),但还无法弄清楚。

==============================
最初我认为这是与范围有关的事情,但我更多地研究了结果,它更多的是我不了解的异步问题。这怎么能等待 readStream 处理到文件末尾,使用 await、promise、resolve 等。

0 投票
1 回答
151 浏览

javascript - 如何从 csv-parser 获取数据?

我想处理来自 csv 文件的数据,并且我使用了 csv-parser 来做到这一点。

解析器运行良好,我打印了 csv,但我想返回 value 变量中的数据。

我应该怎么办?