解析字段值有引号和回车的 csv
某 csv 文件的第 3 列是特殊的字符串:两端有引号,被拆分为多行(相当于用回车分隔)。
id,name,description,age 23,Anna,"Self-made Chef Shoemaker",23 1,Lily,"One Way go far",24 2,Joe,"Go aHead",55 3,Bat,"A fried",41 |
要求:用 Java 整理成规范的二维表。
id |
name |
description |
age |
23 |
Anna |
Self-made Chef Shoemaker |
23 |
1 |
Lily |
One Way go far |
24 |
2 |
Joe |
Go aHead |
55 |
3 |
Bat |
A fried |
41 |
编写SPL语句:
=file(""data.csv"").import@tcoq().run(description=replace(description,""\n"","" ""))
函数import将文件解析为二维表,@t表示首行为列名,@c表示csv的分隔符逗号,@o表示处理行中未转义的回车符,@q表示拆掉两端的引号再解析。run可修改并返回修改后的二维表。
Java 集成 SPL 可参考 Java 如何调用 SPL 脚本
问题来源:https://stackoverflow.com/questions/72844595/parsing-double-quote-with-new-line-from-csv-using-jackson-dataformat-csv
英文版 https://c.scudata.com/article/1724741930816