问题标签 [fast-csv]

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 投票
1 回答
26 浏览

typescript - 使用 fast-csv 如何调用异步验证器?

如何调用返回承诺的函数?

使用管道,例如

.validate 调用不起作用。

0 投票
1 回答
254 浏览

javascript - 检测 csv 上的重复数据

使用使用 fast-csv 包的 node.js,我目前有这个解析功能,它读取 csv 文件、更改标题、遍历每一行并根据行数据触发事件。

我需要检测多次检查数字的记录。如果存在重复,例如多行具有相同的电话号码,则应将其视为无效并推送到无效记录数组

我想从解析的 CSV 中得到输出:

我该如何解决这个问题?

0 投票
0 回答
164 浏览

javascript - 如何将大型数据集结果按块存储到nodejs中的csv文件中?

我有一个大约 1000 万条记录的 mysql 表,我想使用 NodeJs 将这些记录发送到 csv 文件。

我知道我可以进行查询以获取所有记录,将结果存储在 json 格式变量中,然后使用 fastcsv 之类的库与 createWriteStream 一起将它们发送到 csv 文件。使用流将结果写入文件是可行的。但我要避免将 1000 万条记录存储到内存中(假设记录有很多列)。

我想做的是只查询结果的一个子集(例如 20k 行),将信息存储到文件中,然后查询下一个子集(下 20k 行)并将结果附加到同一个文件并继续处理直到完成。我现在遇到的问题是我不知道如何控制下一次迭代的执行。根据调试,由于 nodejs 的异步特性给我一个文件,其中一些行混合(同一行中有多个结果)和无序记录,因此同时执行了不同的写入操作。

我知道总执行时间会受到这种方法的影响,但在这种情况下,我更喜欢一种受控的方式并避免内存消耗。

对于数据库查询,我使用 MySQL 的 sequelize,但无论查询方法如何,想法都是相同的。

到目前为止,这是我的代码:

0 投票
0 回答
37 浏览

node.js - 为什么这个 CSV 解析节点 Lambda 不记录任何内容?

运行时环境是节点 14(AWS Lambda 函数)。

S3 存储桶和 Lambda 函数在同一个区域,我已经确认 Lambda 函数能够从 S3 获取对象(即权限似乎不是问题)。

Lambda 在将对象(一个非常简单的 CSV 文件)放入 S3 存储桶时触发。CloudWatch 日志流中不会出现任何错误或异常。

包.json

index.js

我还尝试了以下变体,结果相同:

index.js (variant)

注意:我已经尝试过简单地做await s3.getObject(params).createReadStream(),但这会导致undefined通过promise()首先获取对象数据来获取对象。

我已经为此苦苦挣扎了几个小时,因此不胜感激。谢谢!

0 投票
0 回答
12 浏览

node.js - 如何使用stream.pipe nodejs从csv.gzip中提取标头

有没有办法在使用 fast-csv 流式传输文件时从 csv.zip 文件中获取 csv 标头。

我火腿使用这段代码:

在这个 csvHeaders 中是未定义的。

0 投票
1 回答
45 浏览

javascript - How do I write special characters to csv file in node with fast-csv

I have a list that contains German characters and I write to csv file with fast-csv and gives me different characters.

output is this: screenshot of output data

Ästhetik Zahnarzt Hamburg City Z-24 Mö 17 / Dr. P. Michaelis, Dr. C. Khorram | ... | Branche: Zahnärzte

0 投票
0 回答
20 浏览

node.js - 关于从 CSV 文件中获取的 NodeJS 后端重复数据

我在 Node JS 中创建了一个后端来从 CSV 文件中获取数据。

然后我从 CSV 文件上传了以下数据:

我在邮递员中创建了一个get请求,然后我看到相同的数据不断重复多次,如下:邮递员的截图

952 在 CSV 文件中仅存在一次,而在邮递员获取请求窗口中显示 38 次。

我究竟做错了什么?

0 投票
1 回答
46 浏览

node.js - 读取流(nodejs)时“管道失败。响应已经发出”

所以我的代码应该从 CSV 文件中读取一些行,将它们转换为 JSON 对象数组,然后返回该数组。要将文件作为流读取,我使用got,然后在fast-csv. 为了返回结果数组,我将整个东西放入 Promise 中,如下所示:

现在,当我调用它一次 ( await GetPage()) 时,它工作得非常好。问题是当我连续第二次调用它时。我得到以下信息:

我在这里看到了一个类似的案例:https://github.com/sindresorhus/file-type/issues/342但据我所知,这是一个不同的案例,或者更确切地说,如果它是相同的,我不知道如何在此处应用解决方案。

这是在构造函数中给定的GetPage类中的一个方法,我像这样创建 Readable:CSVStreamParserReadablereadable:Readable = got.stream(url)

让我困惑的是,我的第一个版本的 GetPage 没有包含 Promise,而是接受了一个回调(我只是发送console.log来测试它),当我连续调用它几次时没有错误,但它无法返回值,所以我将其转换为 Promise。

谢谢!:)

编辑:我已经设法通过在开始时重新打开流来使其工作GetPage(),但我想知道是否有一种方法可以在不必这样做的情况下达到相同的结果?有没有办法保持流打开?

0 投票
0 回答
33 浏览

node.js - 从 mongodb 获取数据并使用 fast-csv 将其保存为 csv

这是我的代码

模型.ts

索引.ts

并且 app.js 文件调用每个路由。

我正在尝试从 mongodb 获取数据并使用 fast-csv 将数据写入 csv 文件。这是我为将数据获取为 csv 文件而编写的代码。

和 route.ts

在数据目录中,它创建 data.csv 文件。但是从数据库中读取的数据没有写入。我该如何解决这个问题