2012-10-18 37 views
0

如何通過id解析行到數組中?從csv解析行ID

例如:

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

例子的問題,我怎麼能解析到一個數組爲2的ID的行?

回答

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

+0

這個偉大的工程,但其他人可能要注意,fastercsv是現在的標準庫,而且也沒有必要宣佈它爲FasterCSV,CSV正常工作。謝謝 – samayres1992