2012-10-18 3 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

관련 문제