CSV.foreach("C:/Users/StocksCSV/XOM/XOM.N_BAL_ANN.csv",:col_sep => ';', :skip_blanks => true) do |row|
row.gsub(/[^,]/,"")
#puts row.inspect
ANN_BAL_TBL.insert(:company_name => 'XOM', :statement_title => row[0], :item1 => row[1],
:item2 => row[2], :item3 => row[3], :item4 => row[4], :item5 => row[5])
end
puts "ANN_BAL_TBL DB Row Count: #{ANN_BAL_TBL.count}"
这会导致错误:
"undefined method `gsub' for #<Array:0x26d4bc0> (NoMethodError)"
我的CSV文件如下(我只想删除货币中的&#34;,&#34;)
&#34;以百万美元计算(每股项目除外); 2012年 2012-12-31; 2011 2011-12-31重新分类2012-12-31; 2010 2010-12-31; 2009 2009-12-31; 2008 2008-12-31
现金&amp;等价物; 9,582.0; 12,664.0; 7,825.0; 10,693.0; 31,437.0&#34;
答案 0 :(得分:1)
试试这个:
row = row.map { |i| i.gsub(',', '') }
这样做就是在数组中的每个项目上调用gsub
,只要每个项目都是字符串,它就会起作用。你要做的是在数组上调用gsub
,这是不可能的。