问题标签 [csvreader]

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 投票
3 回答
4379 浏览

c# - CSVHelper 不解析我的制表符分隔的 CSV 文件

我正在尝试读取制表符分隔的 CSV 文件并使用 CSVHelper 对其进行解析。

我有以下内容:

但阅读器无法正确识别和解析文件

有任何想法吗 ?
CSVHelper 可能的分隔符是什么?

0 投票
1 回答
34 浏览

python - 使用 python read_csv() 读取管道分隔的 csv 文件时显示不正确的引号

我正在尝试使用 python 读取管道分隔的 csv 文件,read_csv()但它错误地检测到第一个字段中的双引号。我知道它与 csv 阅读器标志有关,但无法弄清楚。

代码

预期输出

["TCC 记录标识符"|"用户名"|"应聘者 ID"|"经验"|"工作序列"|"当前 10"|"工资 10 的结束率"]

实际输出

['TCC 记录标识符|“用户名”|“候选人 ID”|“经验”|“工作序列”|“当前 10”|“工资 10 的结束率”']

0 投票
1 回答
196 浏览

c# - 从动态集合创建地图不再有效:无法将 System.String 类型的对象转换为 System.Object)

我们正在将遗留代码移植到 dotnet 标准,并面临 [我相信] CsvHelper 2.5.0 net451 中不存在的问题。

问题似乎是 CsvReader 无法解决映射中基础属性的正确 ReturnType 并试图将它们全部映射到 System.Object

我已经设法在您的解决方案中通过单元测试来重现它:

报错:

测试方法 CsvHelper.Tests.CsvReaderMappingTestsRuslan.CanCreateMapsFromDynamicList 抛出异常:System.InvalidCastException:无法将“CsvHelper.Configuration.MemberMap2 [CsvHelper.Tests.CsvReaderMappingTestsRuslan+SomeType,System.String]”类型的对象转换为“CsvHelper.Configuration.MemberMap2” [CsvHelper.Tests.CsvReaderMappingTestsRuslan+SomeType,System.Object]'。

PS我尝试将“映射”属性更改为静态并获得相同的结果。

0 投票
2 回答
45 浏览

python - 只有当我有 200 到 400 条记录时,我才尝试读取 CSV 文件

只有在 200 到 400 条记录之间,我才尝试读取 CSV 文件。否则我希望它忽略。出于某种奇怪的原因,我的代码从未到达print(row)

0 投票
1 回答
35 浏览

python-3.x - 如何使用for循环将和项目附加到列表中的最后一个附加项目

我有一个 for 循环遍历 CSV 中的每一行,我创建了一个包含列表的字典,但该列表被覆盖,因为字典键重复了几次。如何在下一次循环迭代中总结或附加到第二(1)位置的列表中相同键的下一个值?

因为如果再次找到现有键,则附加值会被覆盖,因此键的值会一遍又一遍地被覆盖。

CSV 中的字段是:

输出应该是这样的:

0 投票
1 回答
74 浏览

csvhelper - CsvReader 可以根据列数使用不同的记录类型映射吗?

我有一堆我需要阅读的 CSV 文件,除了添加一列之外,它们是相似的。本质上,旧的 CSV 格式有 7 列,而新格式将有 8 列。没有标题。读取后,新列将被默认/编辑,然后文件在写出时将有 8 列 - 因此将来的读取现在将具有新列。

所以我正在尝试做这样的 CvsHelper 示例: Reading Multiple Record Types

除了唯一的区别是文件中的列数 - 不是识别字段值。

我在它自己的 using() 中尝试了一个 CsvParser,并使用文件第一行的单个 Read() 来确定列数,并认为后续 using() 中的 CsvReader 可以为 CsvReader 注册一个计数特定的 ClassMap。获取记录。但是,似乎没有一个属性或方法可以回答解析器遇到的列数。与 CsvReader.Read() 相同 - 在 Read() 之后 CsvReader.Context.ColumnCount 为零。任何想法/指针表示赞赏。

更新

这是我修改后的代码(长名称,我知道) - 感谢大卫的建议:

0 投票
1 回答
1775 浏览

json - 如何使用 Java 代码读取 CSV 并解析 JSON

我正在使用以下代码读取 CSV 文件并将其数据解析为 JSON。

这工作正常,并给我如下输出,

但所需的输出是

实际上,我需要阅读从 CSV 转换而来的 JSON 文件。使用以下代码

但是,当我尝试这样做时,它给了我这个错误。

同时 json 文件应该以{代替开头,[类似地它应该以}代替结尾]。我的目标是消除这个错误。

0 投票
0 回答
50 浏览

python - 包含双引号和逗号的字符串的 csv.reader 错误

由于我尝试了不同代码和 csv.reader 方言的所有可能变体,因此我的 csv 文件总是存在双引号行的问题。我找不到原因。如果行只有标准逗号和一个带有空格的字符串,它可以工作,但如果双引号字符串中有逗号或单引号,它表示该行有一个项目,而不是它应该是的。每行的预期列表项:isbn、标题、作者和年份。我已经阅读了所有 github 解决方案,所有代码几乎相同,它们都使用简单csv.reader(f),没有任何特殊方言,但我的代码不起作用。我在什么时候错了?

错误部分:

books.csv 文件链接

CSV 样本:

0 投票
1 回答
56 浏览

java - jOOQ - 寻求有关从 CSV 快速插入的建议

我正在使用下面的代码使用jOOQ在Oracle中插入来自大型 csv( 100,000 条记录)的记录。这是片段:

我遇到了一些建议,例如:从 CSV 加载时出现 PostgreSQL/JooQ 批量插入性能问题;如何改进流程?

但是,我的用例有点不同,所以问这个只是为了得到一个建议,我是否以正确的方式做这件事?

另外,您能否建议,jOOQ 中的batchInsert(..)实现是否支持批处理执行?(在文档中,我看到了 .bind(..) 方法,所以为了清楚起见要求这个)

0 投票
2 回答
235 浏览

c# - 如何断言已将扩展名更改为 csv 的 exe 文件实际上是 csv 文件 c#

所以我需要创建一个文件验证器来检查文件类型是否正确。最初我们只是检查请求的内容类型,但与往常一样,我们的测试人员通过简单地将 exe 文件的文件扩展名更改为 .csv 来绕过限制,这可能会欺骗我们的直接检查。

这就是我目前在验证器中所拥有的

我打算做的是,如果 CSV 阅读器在文件中找不到标题,那么我希望它会爆炸并返回 false,但正在发生的事情是文件的全部内容正在作为单个标题读入所有非 csv 文件类型的情况。导致它认为它确实是一个有效的 csv 文件并返回 true。

我一生都无法找到一种方法来捕捉 CSV 文件是否确实有效,因为在大多数情况下,CSV 阅读器可以将所有流作为字节数据读取,并且标题记录的上下文在此看起来像一个有效的 CSV案子。

令人讨厌的是,尽管我们永远不会上传带有单个标头的文件,但仅对标头进行标准计数以查看它是否只有一个标头来捕获此问题感觉很愚蠢。

任何帮助都将不胜感激,因为我对此感到有些困惑。在此先感谢,克里斯。