Ruby unable to parse a CSV file: CSV::MalformedCSVError (Illegal quoting in line 1.)

后端 未结 9 2161
被撕碎了的回忆
被撕碎了的回忆 2021-02-03 22:17

Ubuntu 12.04 LTS

Ruby ruby 1.9.3dev (2011-09-23 revision 33323) [i686-linux]

Rails 3.2.9

Following is

9条回答
  •  难免孤独
    2021-02-03 23:19

    quote_chars = %w(" | ~ ^ & *)
    begin
      @report = CSV.read(csv_file, headers: :first_row, quote_char: quote_chars.shift)
    rescue CSV::MalformedCSVError
      quote_chars.empty? ? raise : retry 
    end
    

    it's not perfect but it works most of the time.

    N.B. CSV.parse takes the same parameters as CSV.read, so either a file or data from memory can be used

提交回复
热议问题