ruby – 克服使用FasterCSV宝石的CSV解析的基本问题

我发现一个CSV解析问题与FasterCSV(1.5.0),这似乎是一个真正的错误,但我希望有一个解决方法.

基本上,当字段用引号括起来后,在分隔符之后添加一个空格(在我的例子中为逗号)会生成一个MalformedCsverror.

这是一个简单的例子:

# No quotes on fields -- works fine
FasterCSV.parse_line("one,two,three")
=> ["one","two","three"]

# Quotes around fields with no spaces after separators -- works fine
FasterCSV.parse_line("\"one\",\"two\",\"three\"")
=> ["one","three"]

# Quotes around fields but with a space after the first separator -- fails!
FasterCSV.parse_line("\"one\",\"three\"")
=> FasterCSV::MalformedCsverror: Illegal quoting on line 1.

我生气了吗,还是FasterCSV的bug?

解决方法

这里的格式错误是正确的.

CSV格式的前导/尾随空格不被忽略,它们被视为字段的一部分.所以这意味着你已经开始一个有空格的字段,然后在该字段中包含非转义的双引号,这将导致非法的引用错误.

也许这个图书馆比你使用的图书馆更严格.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...