gpt4 book ai didi

csv - 具有重复列标题的 Apache CSV 解析器

转载 作者:行者123 更新时间:2023-12-03 15:38:39 24 4
gpt4 key购买 nike

我需要处理具有重复标题的 CSV 文件,每个数据都在三列(最小值、最大值和平均值)中,但每列的标题都相同。第一列是最小值,第二列是平均值,第三列是最大值。

Apache CSV 解析器抛出:

java.lang.IllegalArgumentException: The header contains a duplicate name:

如何配置解析器以接受重复的 header ?

最佳答案

CSVParser中没有预定义的配置参数控制是否可以接受重复的列名。

查看源代码表明initializeHeader方法创建一个 Map它将列名作为键,列索引作为值。如果要使用标题映射,列名必须是唯一的。

但是,有一个解决方案:

指定一个 CSVFormat忽略 CSV 文件第一行定义的列名,以及 define your column names manually .

来自 CSVFormat documentation :

Defining column names

To define the column names you want to use to access records, write:

CSVFormat.EXCEL.withHeader("Col1", "Col2", "Col3");

Calling withHeader(String...) let's you use the given names to address values in a CSVRecord, and assumes that your CSV source does not contain a first record that also defines column names. If it does, then you are overriding this metadata with your names and you should skip the first record by calling withSkipHeaderRecord(boolean) with true.

关于csv - 具有重复列标题的 Apache CSV 解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38549738/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com