我正在研究一种获取 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