gpt4 book ai didi

Jackson CsvMapper 只读取第一行

转载 作者:行者123 更新时间:2023-12-05 07:13:34 25 4
gpt4 key购买 nike

我想将 csv 文件读入字符串列表。我还希望它修剪空格并允许尾随逗号。我的 csv 文件如下所示:

abcdefghijklmno ,
pqrstuwzabcdefh,
ijklmnopqrstuwyz,
zabcdefghijklmopqr,

当我尝试使用我的方法解析它时:

fun parseCsv(inputStream: InputStream): List<String> {
val mapper = CsvMapper().enable(CsvParser.Feature.TRIM_SPACES).enable(CsvParser.Feature.ALLOW_TRAILING_COMMA)
val schema = CsvSchema
.emptySchema()
.withLineSeparator("\n")
.withColumnSeparator(',')
.withQuoteChar('"')
return try {
mapper
.readerFor(String::class.java)
.with(schema)
.readValues<String>(inputStream)
.readAll()
} catch (e: IOException ) {
logger.error("Error parsing file", e)
emptyList()
} catch (e: NoSuchElementException) {
throw FileParsingError(e)
}
}

我得到:

expected == actual
| | |
| | [abcdefghijklmno, ]
| false
[abcdefghijklmno, pqrstuwzabcdefh, ijklmnopqrstuwyz, zabcdefghijklmopqr]

如何解决?

最佳答案

这对我有用:

return mapper.readerForListOf(Map.class)
.with(schema)
.with(CsvParser.Feature.WRAP_AS_ARRAY) // <-- This.
.readTree(content);

关于Jackson CsvMapper 只读取第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60110870/

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