带有未转义引号的Java CSV解析器

Hut*_*ut8 4 java csv supercsv

我有一个CSV文件有一些引用问题:

"Albanese Confectionery","157137","ALBANESE BULK ASST. MINI WILD FRUIT WORMS 2" 4/5LB",9,90,0,0,0,.53,"21",50137,"3441851137","5 lb",1,4,4,$6.7,$6.7,$26.8
Run Code Online (Sandbox Code Playgroud)

SuperCSV正在窒息这些水果虫(双关语).我知道2"应该是2"",但事实并非如此.LibreOffice实际上正确地解析了这个(让我感到惊讶).我正在考虑编写自己的小解析器,但其他行在字符串中有逗号:

"Albanese Confectionery","157230","ALBANESE BULK JET FIGHTERS,ASSORTED 4/5  B",9,90,0,0,0,.53,"21",50230,"3441851230","5 lb",1,4,4,$6.7,$6.7,$26.8
Run Code Online (Sandbox Code Playgroud)

有没有人知道Java库会处理这样的疯狂事情?或者我应该尝试所有可用的?或者我最好自己解决这个问题?

Joh*_*nyO 6

正确的解决方案是找到生成数据的人,用键盘敲打他们,直到他们解决问题为止.

一旦你用尽了这条路线,就可以尝试市场上的其他一些CSV解析器,过去我已经成功使用过OpenCSV.

即使OpenCSV无法解决开箱即用的问题,代码也很容易阅读并在Apache许可下可用,因此可以修改算法以处理您的不良数据,并且可能比从刮.