我正在使用ruby 1.9.2。我的csv文件如下..,

NAME,    Id,   No,  Dept
Tom,     1,    12,   CS
Hendry,  2,    35,   EC
Bahamas, 3,    21,   IT
Frank,   4,    61,   EE

我想打印一个特定的行说('Tom')。我尝试了很多方法,但没有找到确切的结果。推荐的选项是“Fastercsv”。但这适用于我的版本。另外,我注意到csv将字段按列打印。如何在rails中使用csv打印整个行。我的 ruby 代码如下
require 'csv'

csv_text = File.read('sampler.csv')
csv = CSV.parse(csv_text, :headers => true)
csv.each do |row|
 puts "#{row[:NAME]},#{row[:Id]},#{row[:No]},#{row[:Dept]}"
end

最佳答案

使用.find

csv = CSV.read( "sampler.csv", header: true )

puts csv.find {|row| row['NAME'] == 'Tom'} #=> returns first `row` that satisfies the block.

关于ruby-on-rails - 如何在csv中查找特定行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9599568/

10-16 16:03
查看更多