首页 > 解决方案 > 对于 csv 文件的每一行,使用 ruby​​ on rails 打印每一行的第 n 列

问题描述

我的 csv 文件如下所示:

Date,Client_mnenonic,summary,Assignee
2021-01-22,P1,Q1 Non-Prod Quarterly Maintenance,Karthik
18.01.21,P2,Q1 Non-Prod Quarterly Maintenance,Jimmi
18.01.21,P3,Q1 Non-Prod Quarterly Maintenance,Abdul
18.01.21,P4,Q1 Non-Prod Quarterly Maintenance,Naresh
18.01.21,P5,Q1 Non-Prod Quarterly Maintenance,Roy

我想遍历这个 csv 文件并打印每一行的第三列:

我的代码如下所示:

require 'csv'

table = CSV.parse(File.read("file.csv"), headers: true)
table.each do |row column|
  puts row[0]column[3]
end

标签: ruby-on-rails

解决方案


首先,语法错误。

require 'csv'

table = CSV.parse(File.read("test.csv"), headers: true)
table.each do |row|
  # using index position
  puts row[2]

  # OR using header
  puts row['summary']
end

解析 CSVheaders给出了一个CSV::Row可以通过两种方式访问​​的实例

  1. 使用索引
  2. 使用标题名称

推荐阅读