问题标签 [csv-parser]

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 投票
2 回答
1944 浏览

javascript - 使用 csv-parser 只返回文件头

我正在查看将 csv 文件解析为 JSON 的 NPM 包 csv-parser。根据提供的示例,您可以通过以下方式逐行读取 csv 文件:

有什么办法只能返回 CSV 文件的标头值吗?

0 投票
1 回答
91 浏览

javascript - 使用 csv-parse 和 node 在读取和解析文件中添加快速随机访问

我正在使用csv-parser库来处理节点中的 csv 解析。该文件可能很大,从 50,000 到 500,000 行不等,甚至可能更大。我必须在 csv 上执行一些计算,在将其提交到服务器之后,我正在考虑将 csv 分成块,然后我可以将这些块提供给工作线程以执行计算。工作线程将获取要跳过的行数,然后在达到特定限制之后开始读取行数。我创建了一个读取流,并通过选择要跳过的行数来传递 csv-parser。我试图对其进行一些基准测试,但在跳线和不跳线之间没有发现明显的好处。即使我阅读了整个文件,有时也比阅读结尾的 30,000 行要快。

我的猜测是,这个问题是因为读取流会一一读取数据,因此对于快速随机访问文件并不完美。

也许我的基准测试是错误的?

这是一段代码

这是输出

对于我的目标,还有其他更好的方法吗?

0 投票
1 回答
48 浏览

python - Pandas csv解析器遇到`"`时无法正常工作

问题陈述:

最初我所拥有的

我有一个包含以下记录的 CSV 文件:-

数据.csv:-

当我尝试使用编码“ISO-8859-1”对此运行 script.py 时,它运行良好

结果1


现在我有什么: -

但是,当我"在每条记录的前面都收到同一个文件的提要时,解析器的行为很尴尬。数据更改后,新记录如下所示:-

在为这个新数据文件运行相同的脚本(script.py)之后,我得到了以下结果

结果2

字符"仅属于 ISO-8859-1 字符集,因此无论如何这都不是问题。它应该是解析器,无法真正理解为什么解析器不只关注,我专门作为分隔符传递给 read_csv() 的那个。

参考:ISO-8859-1 字符集

我很想知道 pandas 无法正确解析它的原因,或者它与".

0 投票
0 回答
72 浏览

c# - 如何从 csv 文件中获取无效行?

我使用TinyCsvParser作为工具,将大型 csv 文件中的行映射到我的数据模型中。所以,问题是我如何才能使用无效的行来为用户显示它?现在它可以与 Regex 一起使用,但我将在更易读的工具上重新编写它。有可能吗?(现在我可以将 TinyCsvParser 更改为任何其他工具,处理大型 csv 文件的速度非常快,并且具有可读的 api)。

现在看起来像: 模型:

解析器:

要解析的代码:

0 投票
1 回答
42 浏览

javascript - 节点 csv-parser 返回变量

我有这个功能

我想做的是像这样检索函数的值

它向我展示了undefined 如何返回我被困在那个函数上的那个函数的值

0 投票
0 回答
42 浏览

node.js - 当数据找到条件时停止可读流

我有一个 csv 缓冲区,我要发送到一个函数。在缓冲区中,我得到了以下数据:

我使用一个节点stream将它通过管道传递给一个对象,csv-parser并且我想看看条件是否满足,如果我们发现tim谁的年龄已经超过 59 我希望它停止,所以永远不会读取 jon,我想要这个函数返回一个字符串。

这只适用于我将它推送到一个数组,读取整个文件,然后最后我返回一些东西。

我试过createReadStream但不能使用缓冲区,我得到了错误ENAMETOOLONG:,使用流它运行良好但无法停止on.('data')

0 投票
0 回答
65 浏览

node.js - 逐行读取节点中缓冲区的最佳方法

我正在使用 multer 将文件存储在内存中,其想法是读取缓冲区并逐行检查文件的内容,当一行未通过验证时,我想丢弃否则保存到磁盘。

该文件是一个 csv 文件,我已经尝试过createReadStream,但由于缓冲区失败,所以我使用了 node stream

我在这个实现中遇到的问题是我无法返回并停止任何来自Readable stream

0 投票
0 回答
19 浏览

univocity - 处理单义性解析器中的转义引号

我正在使用单义词解析器 2.9.1。我无法让转义的报价正常工作。前任:

返回的列表仅包含 3 个元素,包括 ABC、DEF、“GHI|JKL|MNO。我期望返回 5 个元素。有没有办法处理上述情况

0 投票
1 回答
229 浏览

java - 如何读取 CSV 文件,按特定记录过滤并根据记录将其存储在不同的 java 对象中

我有一个如下所示的 CSV 文件

上面的 csv 包含有关学校学生和教师的信息。在第二列的帮助下,我们将能够识别信息是否与学生或教师有关

现在我想根据第二条记录过滤 CSV 文件,并将学生相关信息存储在 Student 类中,将教师相关信息存储在 Teacher 类中

我试图通过使用如下所示的 opencsv 来做同样的事情

我的解析代码如下所示

如果 csv 只有一种类型的记录(学生或教师),这可以正常工作。是否可以根据记录类型过滤 csv 并相应地将其解析为不同的 java 对象。

我知道如果我们循环遍历 csv 并逐行读取,我们可以实现它,但我不想这样做,因为我们的 csv 文件太大,这样做会影响性能。

0 投票
1 回答
74 浏览

java - 如何在将csv字段解析为java对象之前进行类型转换

我有一个如下所示的 CSV 文件

我想将这些字段映射到一个 java 对象。我将文件中的所有字段都作为字符串获取。我正在使用 opencsv 将它们转换为 java 对象,如下所示

我的学生班级将如下所示:

这就是我将其解析为 Student 对象的方式。

我正在将 csv 字段解析为 java 对象,因为我想将它们存储在数据库中并且在我的数据库中,标记是整数,但我将它们作为 csv 文件中的字符串获取。

现在在学生类中,我将标记定义为字符串,因为我在 csv 文件中将它们作为字符串获取。有没有办法在将标记解析为学生对象时直接将标记类型转换为整数,以便我可以使用相同的学生类保存在数据库中,否则我将不得不不必要地创建另一个类。