从csv按ID解析行

时间:2012-10-18 12:48:57

标签: ruby

如何通过id将行解析为数组?

示例:

id  | name |  descritption
---------------------------
1   | eg1  | dummytext1
1   | eg2  | dummytext2
2   | eg3  | dummytext3
2   | eg4  | dummytext4

示例问题,如何将ID为2的行解析为数组?

1 个答案:

答案 0 :(得分:1)

result = Hash.new { |h,k| h[k] = Hash.new { |j,l| j[l] = [] } }

FasterCSV.foreach( "yourfile.csv", :headers=>true, :header_converters=>:symbol ) do |line|
  if line[:id] == 2
    result[:id][:name] << line[:name]
    result[:id][:descritption] << line[:descritption]
  end
end

请注意,此代码未经测试。

有关CSV库的文档为here