我有一个解析用户上传的csv文件的Web应用程序。
某些用户上传的csv文件与提及here
的正确csv格式不符例如:
abc,hello mahmoud,this is" description, bad
这应该是
abc,hello mahmoud,"this is"" description", bad
当我使用ruby fastercsv 库解析错误的csv时,失败。但是,当我通过 excel或openoffice 打开文件时成功。
是否有任何ruby库可以重新格式化csv文本以使其格式正确?
答案 0 :(得分:2)
来自docs:
您不想做的是提供FasterCSV无效的CSV。因为 CSV格式的工作方式,解析器通常需要读取 直到文件结束,以确保字段无效。这吃了 很多时间和记忆。
幸运的是,使用无效的CSV时,Ruby的内置方法会 几乎总是在各方面都优越。例如,解析 非引用字段非常简单:
data.split( “”)
这会给你一个数组。如果你真的想要有效的CSV(因为你获救了MalformedCSVError),那么就有...更快的CS!
require 'csv'
str= %q{abc,hello mahmoud,this is" description, bad}
puts str.split(',').to_csv
#=> abc,hello mahmoud,"this is"" description", bad