【问题标题】:Import CSV column where header includes X?导入标题包含 X 的 CSV 列?
【发布时间】:2013-11-18 17:27:45
【问题描述】:

我有一个列标题如下的 CSV 文件:

[NPSScore]      On a scale of 0 to 10, how likely would you b...

但有时标题可能如下所示:

[NPSScore]

我需要将此列读入一个数组。我的代码如下所示:

CSV.foreach(csv_file_to_read_for_is_average_nps_score, :col_sep => "\t", :encoding => "BOM|UTF-16LE:UTF-8", :headers => true) do |column|
  is_average_nps_score_arr << column['[NPSScore]'] 
end

但是,这只会选择两个标题选项中的后者。

我怎样才能写到包含NPSScore的任何列?

【问题讨论】:

  • 尝试设置:headers =&gt; false并使用next if $. == 1跳过第一行,然后使用数字索引检索您的字段,如column[0]

标签: ruby csv


【解决方案1】:

要获取包含字符串 '[NPSScore]'first 列,请执行

column.find{|k,_| k.include? '[NPSScore]' }.last

而不是

column['[NPSScore]']

【讨论】:

  • 这会减慢处理速度,尤其是在有很多列要搜索和/或很多行的情况下。
猜你喜欢
  • 1970-01-01
  • 2023-03-29
  • 2017-07-21
  • 2015-07-21
  • 1970-01-01
  • 1970-01-01
  • 2017-02-05
  • 2011-09-01
  • 2020-06-09
相关资源
最近更新 更多