列中的CSV交换值

时间:2011-10-29 17:12:00

标签: ruby

我的第5列有各种美国州名,使用两个字母标识符(CA,NY,WA ......等)如何换出每个的值?假设我想要所有CA为1,NY为2,WA为3。

1 个答案:

答案 0 :(得分:0)

试试这个代码段:

require 'csv'
state_map = { CA: 1,NY: 2,WA: 3 }

converted_states = CSV.generate do |csv|
  CSV.foreach('states.csv') do |line|
    key = line[4].to_sym
    line[4] = state_map[key] if state_map.has_key? key
    csv << line
  end
end

puts converted_states #instead of displaying in this place you can save data etc.

在这个片段中,我假设您使用State: Id

等映射嵌入了哈希