从csv文件中的多个数组中提取数据以获取ruby

时间:2018-05-31 20:01:13

标签: ruby

如何解析csv文件以检查csv文件中所有数组中是否存在值?只需拉出包含该值的数组并显示它?

     require 'csv'

########
## Ask for Serial number
########
serial_number = ask("Product serial number?", true)
serial_number = serial_number.to_s
serial_number = serial_number.upcase
stamp_date= Time.now
old = Time.now.to_i

###################
## CHECK if SN exist in Serial List
###################

CSV.foreach('procedures/Serial.csv') do |row|
    check_serial = row[0]

1 个答案:

答案 0 :(得分:1)

假设你有这个csv文件:

# starships.csv
serial_number,ship_name,speed
NCC-1701,USS Enterprise,Warp 8
NCC-74656,USS Voyager,Warp 9.975

例如,您可以通过以下方式查找序列号:

require 'csv'

CSV.foreach('starships.csv', headers: true) do |row|
  p row['ship_name'] if row['serial_number'] == "NCC-74656"
  # whatever code
end

#=>"USS Voyager"

我不知道代码的第一部分,但第二部分缺少迭代循环的end。 如果您设置headers: true,则会跳过第一行作为数据,并用于构建访问键,例如,您可以使用row['ship_name']代替row[0]