0

SQL ダンプのコンテンツを解析すると、「不正な引用」エラーが発生し、ダンプ ファイルがタブ (\t) 区切り文字付きの TXT 形式になっています。

  require 'rubygems'
  require 'faster_csv'
  begin
  FasterCSV.foreach(excel_file, :quote_char => '"',:col_sep =>'\t', :row_sep =>:auto, :headers => :first_row) do |row|

  col= row.to_s.split(/\t/)

  if col[3]!="" or !col[3].empty?
    color_value=col[3].to_s.capitalize
    #Inser Color
    color=Color.find_or_create_by_name(:name=>color_value)
  elsif col[3].empty?
    color_id= nil
  end

  end
  rescue Exception => e
  puts e
  end

プログラムは実行され、正常に実行されましたが、以下のような無効なデータが存在します (@font-face ...) は、「行 3 での引用が不正です。

    ID Name code comments
     1 white 234 good
     2 Black 222 
     3 red   343 @font-face { font-family: "Verdana"; .....}

column に無効なデータが発生したときにスキップする方法を教えてもらえますか?

前もって感謝します。

4

3 に答える 3

0

これで表示されているエラーが解決するかどうかはわかりませんが、エスケープ文字を二重引用符で囲む必要があります。

:col_sep => "\t"
于 2011-06-21T13:49:16.603 に答える
0

FasterCSV は、不適切な形式のデータにはあまり適していません。これに対する解決策があるかどうかはわかりません。

ただし、サンプルファイルに " を使用した引用が実際に含まれていない場合は、おそらく別の quot_char (例: ') を使用してください。

于 2011-06-21T14:39:46.700 に答える