基本上我正在阅读一个大型的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
谢谢
答案 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\""]
或.
位于子字符串内时,上述内容将无法正确分割。作为解决方案:
,