在csv文件中保存错误的颜色分隔符



基本上我正在阅读一个大的csv文件,它有一些错误。少数列用dot而不是comma分隔。有人知道有什么方法可以继续运行这些线路吗?第二行"test"之间的错误示例。"测试":

CSV.foreach("#{Rails.root}/tmp/test.csv") do |row|
puts  "Mrs","test","test","U26453"
puts  "Mr","test"."test@emai.com","U50406"  - CSV::MalformedCSVError: Missing or stray quote in line 2
end 

Thank you

你可以写一个小的正则表达式,它将被不同的字符分割:

split(/[,.]/)

v = '"Mrs","test","test","U26453"'
v.split(/[,.]/)
=> [""Mrs"", ""test"", ""test"", ""U26453""]
更新:

正如@gerep注意到的,当.,在子字符串内时,上面的代码将不能正确分割。作为解决方案:

split(/"[,.]"/)

最新更新