我正在研究一种方法来获取CSV文件(带标题)并使用Ruby CSV.parse
解析它,但是我只想保存特定的列。Ruby通过标头值解析csv
的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
可能的重复[如何解析CSV文件中的列在Ruby中并将其存储为数组?](http://stackoverflow.com/questions/3237734/how-do-i-parse-columns-in -a-csv-file-in-ruby-and-store-it-as-an-array) –