微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

原文地址:https://www.jb51.cc/ruby/273386.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐