CSV ファイル (ヘッダー付き) を取得し、Ruby を使用して解析する方法に取り組んでいますが、CSV.parse
特定の列のみを保存したいと考えています。
CSV は次のようになります。
NAME,SUPERNET_IP,POP_NAME,ADDRESS_BLOCK_START,ADDRESS_BLOCK_END,Service,ISP Service ID,WCC,DUNSID
Retail,186.43.168.0,text1,186.43.168.0,186.43.175.255,XYZ,XYZB00090095,Enabled,227015716
Retail,186.57.80.0,text2,186.57.80.0,186.57.87.255,XYZ,XYXB00090095,Enabled,227015716
保持したいフィールドは次のとおりです。
POP_NAME,ADDRESS_BLOCK_START,ADDRESS_BLOCK_END,WCC
次のような特定のヘッダー名で CSV を解析する方法はありますか。
mycsv = CSV.parse(csv_data, {:headers => true, (list of headers to keep here) })
csv_data
この例では、上記の例の CSV から形成された文字列を想定しています。
その場しのぎとして、私はCSVを配列の配列に変換しているだけですが、それは私が求めているものではありません。私はそれをCSVオブジェクトとして保持したいと思います。
myreturnedcsv = []
mycsv = CSV.parse(csv_data, {:headers => true, })
mycsv.each do |row|
myreturnedcsv.push([row[2], row[3], row[4],row[7]])
end