Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.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 on rails Ruby CSV文件解析,标题赢得';t格式?_Ruby On Rails_Ruby_Parsing_Csv_Header - Fatal编程技术网

Ruby on rails Ruby CSV文件解析,标题赢得';t格式?

Ruby on rails Ruby CSV文件解析,标题赢得';t格式?,ruby-on-rails,ruby,parsing,csv,header,Ruby On Rails,Ruby,Parsing,Csv,Header,我的rb文件如下: require "csv" puts "Program1 initialized." contents = CSV.open "data.csv", headers: true contents.each do |row| name = row[4] puts name end …但当我在ruby中运行它时,它不会加载程序。它向我提供了有关标题的错误消息: syntax error, unexpected ':', expecting $end contents

我的rb文件如下:

require "csv"
puts "Program1 initialized."

contents = CSV.open "data.csv", headers: true
contents.each do |row|
  name = row[4]
  puts name
end
…但当我在ruby中运行它时,它不会加载程序。它向我提供了有关标题的错误消息:

syntax error, unexpected ':', expecting $end
contents = CSV.open "data.csv", headers: true
require 'csv'
contents = CSV.open("data.csv", 'r')
contents.shift

contents.each do |row|
  name = row[4]
  puts name
end

所以我想弄明白,为什么ruby不让我解析这个文件?我尝试过使用我拥有的其他csv文件,但它不会加载,并给我一条错误消息。我只是想让节目开始!我觉得这和头球有关。我已经尽可能地更新了,请注意,我使用的是ruby 1.8.7。我在其他地方读到,我可以尝试在irb中运行该程序,但它似乎并不需要它。所以是的。。。提前谢谢你

由于您在Ruby 1.8.7中使用此功能,
:headers=>true
将无法以这种方式工作。 忽略标题并获取数据的最简单方法是
shift
数据中的第一行,即标题:

syntax error, unexpected ':', expecting $end
contents = CSV.open "data.csv", headers: true
require 'csv'
contents = CSV.open("data.csv", 'r')
contents.shift

contents.each do |row|
  name = row[4]
  puts name
end
如果您确实希望在ruby 1.8中使用带有标题的语法,则需要使用FasterCSV,类似于以下内容:

require 'fastercsv'

FasterCSV.foreach("data.csv", :headers => true) do |fcsv_obj|
puts fcsv_obj['name']
end

(请参阅此问题以便进一步阅读:)

1.8.7中的
headers:true
语法不起作用,您应该说
:headers=>true
。但这并不能解决整个问题,因为萨米在下面说了些什么。谢谢你终于成功了。我想我必须更新ruby:/(noobness)