解析带有标头的CSV文件时出现语法错误

时间:2018-03-14 12:36:53

标签: ruby-on-rails ruby

我正在使用ruby 1.8.7 (2013-06-27 patchlevel 374) [x86_64-linux]我正在尝试测试脚本。以下内容无法按预期工作

CSV.foreach(tscm_hosts_file, headers: tscm_hosts_file_col_headers) do |row|
  catch :bad_data do
    tscm_hosts_file_col_headers.each do |header|
      throw :bad_data if row[header].nil?
    end
.
.....

收到的错误是

[root@fmsprdchef001 ~]# ./generate_autoreg_output.rb
./generate_autoreg_output.rb:75: syntax error, unexpected ':', expecting ')'
...each(tscm_hosts_file, headers: tscm_hosts_file_col_headers) ...

我认为这是因为我使用的ruby版本。有人可以告诉哪个RUby版本支持这种语法吗?

1 个答案:

答案 0 :(得分:2)

移动
CSV.foreach(tscm_hosts_file, headers: tscm_hosts_file_col_headers)

CSV.foreach(tscm_hosts_file, :headers => tscm_hosts_file_col_headers)

Ruby 1.9中引入了符号的新哈希语法