'
" oder " "
in MySQL mithilfe eines CSV-Moduls in Ruby 2.3 einfügen, sollten die folgenden zwei Punkte beachtet werden.liberal_parsing
für CSV-Module verwenden, jedoch nicht vor 2.3. '
" muss nach "\\'
" maskiert werden, wenn es in MySQL eingefügt wird. Ersetzen Sie es daher durch gsub.
require "csv"
summary = {}
CSV.foreach("myfile.tsv", col_sep: "\t", quote_char: "\x00", encoding: "UTF-8", headers: :first_row) do |row|
summary = {
:col1 => row[0].to_s,
:col2 => row[1].to_s.gsub("'", "\\\\'"),
:col3 => row[2].to_f,
}
puts summary
# MyModel.replace(summary)
end
col1 col2 col3
homemade cookies Aunt Stella's cookies 123
nickname Louis "Satchmo" Armstrong 456
yard-pound system 4' 10" 147.32
yard-pound system 2 4′ 10″ 147.32
{:col1=>"homemade cookies", :col2=>"Aunt Stella\\'s cookies", :col3=>123.0}
{:col1=>"nickname", :col2=>"Louis \"Satchmo\" Armstrong", :col3=>456.0}
{:col1=>"yard-pound system", :col2=>"4\\' 10\"", :col3=>147.32}
{:col1=>"yard-pound system 2", :col2=>"4′ 10″", :col3=>147.32}
Recommended Posts