Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 将CSV解析为多行,其中每个值在其标题后打印_Ruby_Arrays_Csv_Hashtable - Fatal编程技术网

Ruby 将CSV解析为多行,其中每个值在其标题后打印

Ruby 将CSV解析为多行,其中每个值在其标题后打印,ruby,arrays,csv,hashtable,Ruby,Arrays,Csv,Hashtable,使用Ruby 1.9.2,我需要解析一个CSV文件,并输出带有每个头键和单个值的行,以及行号 标题:键1、键2、键3 第1行:a、b、c 第2行:d,f 预期产出: 1 键1A 键2 b 键3 c 二, 键1d 键2 键3 f 现在,我正在努力将标题与值结合起来,但我很难做到 require 'csv' header = File.open('TEXT.CSV', &:readline) keys = header.split(",") values = CSV.read("TE

使用Ruby 1.9.2,我需要解析一个CSV文件,并输出带有每个头键和单个值的行,以及行号

标题:键1、键2、键3
第1行:a、b、c
第2行:d,f

预期产出:

1
键1A
键2 b
键3 c

二,

键1d
键2
键3 f

现在,我正在努力将标题与值结合起来,但我很难做到

require 'csv'

header = File.open('TEXT.CSV', &:readline) 
keys = header.split(",")


values = CSV.read("TEXT.CSV")

def combine(a,b)
  zipped = a.zip(b)
  Hash[zipped]
end

keyvalue = values.each do |i|
  combine(keys,i)
end

你知道我做错了什么吗?

我认为这是一个更简单的方法:

require 'csv'
csv = CSV.read('branch.csv', :headers => true)
csv.each do |line|
  puts csv.headers.zip(line.fields)
end

# =>    
key1
a
key2
b
key3
c
key1
d
key2

key3
f

我认为这是一个更简单的方法:

require 'csv'
csv = CSV.read('branch.csv', :headers => true)
csv.each do |line|
  puts csv.headers.zip(line.fields)
end

# =>    
key1
a
key2
b
key3
c
key1
d
key2

key3
f
创建:

line 1
key1 : a
key2 : b
key3 : c

line 2
key1 : d
key2 : 
key3 : f
创建:

line 1
key1 : a
key2 : b
key3 : c

line 2
key1 : d
key2 : 
key3 : f