В rails итерируйте CSV, регистрируйте ошибки, но не останавливайте цикл - PullRequest
0 голосов
/ 09 ноября 2018

Я хочу перебрать искаженный CSV следующим образом:

"col1", 1000, "col2", "деформированный" col3 "," col4 "

"col1", 1000, "col2", "col3", "col4"

"col1", 1000, "col2", "" неправильно сформированный col3, "col4"

с использованием Rails, поэтому при обнаружении ошибки в строке выдается CSV::MalformedCSVError, но цикл не останавливается.

Я искал разные решения, но ничего не получалось, пока не узнал. (

В настоящее время у меня есть такой метод:

def iterate_csv
  puts 'lets iterate!!'
  CSV.foreach(@file) { |line| 
    begin
      puts 'loop is on fire...'
      # handle line here
    rescue CSV::MalformedCSVError => e
      puts e
      # handle malformed row here...
    next
    end
  }
end

Вся помощь, которую я нашел, поиск в Google не помог .. любой вклад оценили!

1 Ответ

0 голосов
/ 09 ноября 2018

Если вы хотите остановить цикл, вы должны поставить break вместо next.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...