我正在解析一个 tsv 文件并将其加载到 MySQL 中。我让它工作,然后发现 tsv 文件中有反斜杠被解释为换行符。我想在将数据发送到数据库之前从所有字段中删除 \。这是一个简短的示例,文件中有 300 列,其中许多列是空白的。
begin
CSV.foreach(file, :col_sep => "\t") do |row|
row.map!{ |e| e.gsub(/\\/, '')}
d = Datafeed.new
d.id = row[0]
d.description = row[1]
d.save!
end
end
当我运行这个例子时,我得到一个错误:undefined method `gsub' for nil:NilClass。我认为这个错误是由文件中的空白产生的。但是,当我尝试添加
row.map!{ |e| unless e.blank e.gsub(/\\/, '') }
它不会执行,我得到一个意外的错误}。
这是消除反斜杠的正确方向吗?最好的方法是什么?
谢谢