1

Rails アプリで csv からデータをインポートしようとしましたが、問題が発生しました。

CSV::MalformedCSVError in ArticlesController#index
Unclosed quoted field on line 1.

私のcsvは次のようになります:

"Код";"№ по каталогу  (артикул)";"Наименование  товара";"Ед. изм.";"Цена опт.";"Доп.";"Остатки";"Класс";"Группа";"Бренд";"Блок."
2223;15-562-44;15-562-44 (27-B07-F) VW Polo 95-R                                                                   ;шт  ;37,430;;;Амортизаторы                                                                                        ;Амортизаторы BOGE                                                                                   ;; 
10327;24-052-1;24-052-1(46-A27-0) LAND ROVER 84- F                                                                 ;шт  ;68,750;;;Амортизаторы                                                                                        ;Амортизаторы BOGE                                                                                   ;; 
10328;24-053-1;24-053-1(46-A28-0) LAND ROVER 84- R                                                                 ;шт  ;68,750;;;Амортизаторы                                                                                        ;Амортизаторы BOGE                                                                                   ;; 

たぶんこれは最初の行が原因です(;;がありません)

私のコードは次のようになります。

def csv_import 
    require 'csv'
    file = File.open("/#{Rails.public_path}/uploads/smallcsv.csv")
    #csv = CSV.parse(file)


    csv = CSV.open(file, "r:ISO-8859-15:UTF-8", {:col_sep => ";", :row_sep => ";;", :headers => :first_row})
    file_path = "/#{Rails.public_path}/uploads/smallcsv.csv"
    #@parsed_file=CSV::Reader.parse(file_path)

    csv.each do |row| 
      ename = row[2]
      eprice = row[5]
      eqnt = row[7]
      esupp = row[10]

      logger.warn(ename)
    end

  end

私はfastercsv gemでruby 1.9+を実行しています

4

1 に答える 1

1

「 CSV - Unquoted fields do not allow \r or \n (line 2) 」を使用して、これを自分で理解しました。

問題は最初の行にあったので、:auto助けてくれました。

于 2012-08-28T17:43:24.487 に答える