【问题标题】:Ruby CSV#fetch case sensitivnessRuby CSV#fetch 区分大小写
【发布时间】:2015-08-17 07:47:27
【问题描述】:

我有一个简单的 csv 文件,其标题如下:“NYC”。 我使用 CSV 获取方法: http://ruby-doc.org/stdlib-2.0.0/libdoc/csv/rdoc/CSV/Row.html#method-i-fetch

问题是,当我将 fetch 与 'NYC' 一起使用时,它可以正常工作,但是当我将 fetch 与 'nyc' 一起使用时,它会返回:

KeyError: key not found: nyc

我该如何解决这个问题?

【问题讨论】:

    标签: ruby-on-rails ruby csv


    【解决方案1】:

    有一个选项:header_converters。您可以将其设置为:

    • :downcase 在标题字符串上调用 downcase()。
    • :symbol头部String小写,空格替换为下划线,非单词字符被丢弃,最后调用to_sym()。

    例子:

    require 'CSV'
    
    CSV.parse("NYC\nfoo", headers: true, header_converters: :symbol) do |row|
      row[:nyc] #=> "foo"
    end
    

    【讨论】:

      猜你喜欢
      • 2018-07-31
      • 1970-01-01
      • 2012-12-01
      • 2013-03-06
      • 2020-02-18
      • 2013-05-24
      • 1970-01-01
      • 1970-01-01
      • 2015-07-06
      相关资源
      最近更新 更多