问题标签 [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.
node.js - ReadStream 管道完成后执行循环
不确定标题是否正确,因为我很困惑(在我的头上)......
作为自动化测试的一部分,我正在尝试从 csv 中提取标头以验证这些标头。我正在使用 csv-parse 来读取 csv 文件。
一旦我收集了标题,我就会做一个简单的断言来检查每个标题。使用我在测试脚本中输入的字符串值。
然而目前,FOR 是在 csv 读取和标题被收集之前执行的。我不确定如何在执行循环之前等待它完成。
javascript - 使用具有最大行数的nodejs读取csv文件
我正在尝试node.js使用该csv-parser 库读取 CSV 文件。
由于它是一个大文件,我需要检查标题和第一100行并停止该方法并true在一切正常或false数据不符合条件时返回。
我怎样才能做到这一点?
这是我到目前为止所拥有的:
在以前的版本中,我也声明过:var num = 100并在内部对其进行了测试,.on('data', (row) => {...}但它不起作用。
javascript - JavaScript 中已解析 CSV 的数字列标题
我正在使用Node 的 CSV 包来解析项目中的一些 CSV 文件。我需要能够处理有和没有标题的案例。所以:
我的应用程序不知道列数及其名称。它们要么从标题中读取,要么应该以数字方式生成,例如col0,col1,col2.
这是我遇到问题的地方。我总是希望csvParse的输出采用对象文字形式。当最终用户指示 CSV 具有标题时,这很容易:
但是,当用户指出没有标题行时,似乎不可能以对象文字形式使用程序生成的列标题来结束数据。
的 3 个选项columns是boolean | array | function。
- 通过提供
false,返回的数据是一个数组数组,然后我需要将其转换为对象文字形式。不理想! - 要提供列名数组,我已经需要知道有多少列......在解析之前,这是没有意义的。我可以解析第一行以获取计数,然后重新开始提供数组,但这似乎很笨拙。
- 我可以提供一个以编程方式生成列键的函数。例如
column => column,这无济于事,因为 a) 没有提供索引,并且 b) 然后忽略第一行,因为它被假定为将列标题转换为所需的列键。
有没有我错过的方法来做到这一点?以下是两种看似笨拙且效率较低的方法。
解析 1 行,然后解析所有
解析成数组数组,然后转换
对我来说,能够指定columns为一个函数是理想的,它被赋予列索引作为参数而不是标题行。
mysql - Mysql 导出 CSV 然后用 csv-parse 在 nodejs 中解析没有正确找到分隔符
我正在从 mysql 数据库中导出描述字段:
然后在 nodejs 中,我使用 csv-parse 处理文件(在处理异步时必须使用这个文件):
这是一个示例文本:
然而,解析器弄错了,将其拆分为 3 个字段:
第 3 个字段来自 mysql,由于某种原因,该文件以 \N 结尾而不是 \n 保存。我可以通过 sed 以及行尾逗号来删除它,但如果我的查询可以避免这种情况,我总是很感激一些提示。
然而,对于将正文分成 2 个字段,我感到很困惑。我尝试在解析中删除分隔符参数,但同样的问题。我试着放松:真的,一样。
知道我在做什么错吗?
node.js - nodeJS异步函数解析csv返回数据到其他文件
我正在使用 puppeteer 为内部用户创建一个小工具。
基本上我得到了一个 csv 文件,其中包含一些我“读取”并填写表格的数据。
当我尝试清理我的项目以使其可重用时,我有点挣扎:
我创建了一个文件名 parsecsv.js
在我制作的另一个 Js 文件中
但我从来没有让我的数据只是一个空的对象。如何让我的数据能够与其他功能“共享”?
谢谢
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 解决方案
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 文件看起来就像它应该的样子。看这里:
node.js - 返回从 CSV 解析器创建的字典
我正在尝试从 csv 文件中提取像 {Name:Value, Name2:Value2,...} 这样的字典数据,如下所示
使用下面的功能
我认为这会返回如下内容:
但是空值是返回的。我确定这与范围有关(如果这是正确的词),但还无法弄清楚。
==============================
最初我认为这是与范围有关的事情,但我更多地研究了结果,它更多的是我不了解的异步问题。这怎么能等待 readStream 处理到文件末尾,使用 await、promise、resolve 等。
javascript - 如何从 csv-parser 获取数据?
我想处理来自 csv 文件的数据,并且我使用了 csv-parser 来做到这一点。
解析器运行良好,我打印了 csv,但我想返回 value 变量中的数据。
我应该怎么办?



