Pra*_*hra 18 ruby csv ruby-on-rails
我知道它是如何按行完成的
CSV.foreach(filename.csv) do |row|
puts "#{row}"
end
Run Code Online (Sandbox Code Playgroud)
但是我完全失去了专栏?
ste*_*lag 37
test.csv:
name,surname,no1,no2,no3,date
Raja,Palit,77489,24,84,12/12/2011
Mathew,bargur,77559,25,88,01/12/2011
harin,Roy,77787,24,80,12/12/2012
Soumi,paul,77251,24,88,11/11/2012
Run Code Online (Sandbox Code Playgroud)
通过cols访问:
require 'csv'
csv = CSV.read('test.csv', :headers=>true)
p csv['name'] #=>["Raja", "Mathew", "harin", "Soumi"]
#or even:
t = CSV.table('test.csv')
p t[:no1] #=> [77489, 77559, 77787, 77251]
Run Code Online (Sandbox Code Playgroud)
请注意,在最后一种情况下,cols由符号化名称访问,并且尽可能将字符串转换为数字.
Pra*_*hra 12
这是解决方案的人:
CSV.foreach(filename).map { |row| row[0] }
Run Code Online (Sandbox Code Playgroud)
很抱歉这么晚发布的格式正确.
转置您的CSV文件.通过执行此操作,您的行将转换为列,反之亦然.下面是一个简单的转置示例.
irb(main):001:0> [["1", "2", "3"], ["4", "5", "6"], ["7", "8", "9"]].transpose
=> [["1", "4", "7"], ["2", "5", "8"], ["3", "6", "9"]]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26077 次 |
| 最近记录: |