在csv文件中保存不正确的col分隔符

时间:2015-08-11 11:55:17

标签: ruby-on-rails ruby csv

基本上我正在阅读一个大型的csv文件,它有一些错误。很少有列由dot而不是comma分隔。有谁知道仍然运行这些线的方法? “测试”之间的第二行示例错误。 “测试”:

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 

谢谢

1 个答案:

答案 0 :(得分:2)

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

def parse(self, response): soup = BeautifulSoup(response.body_as_unicode(), 'lxml') items = [] for ... item = CoursesItem() item['title'] = course_info.text item['description'] = course_desc.text item['requirements'] = course_req.text yield items # -> item

split(/[,.]/)

更新:

正如@gerep注意到的,当v = '"Mrs","test","test","U26453"' v.split(/[,.]/) => ["\"Mrs\"", "\"test\"", "\"test\"", "\"U26453\""] .位于子字符串内时,上述内容将无法正确分割。作为解决方案:

,