【问题标题】:Adding Headers to a created CSV file in Ruby - keep getting errors在 Ruby 中向创建的 CSV 文件添加标头 - 不断出现错误
【发布时间】:2016-07-14 14:48:59
【问题描述】:

我一直在尝试使用 Ruby 从 json 数据创建 CSV 文件。我能够创建文件,但我需要添加一些标题。我尝试遵循 Stack Overflow 上发布的类似问题的建议和答案,但我不断收到错误。谁能指点一下?

这是我的代码。

require 'csv'
require 'json'

CSV.open("your_csv.csv", "w") do |csv| 
  JSON.parse(File.open("tojson.txt").read).each do |hash| 
    csv << hash.values 
    @csv.each { |line| line['New_header'] = line[0].to_i + line[1].to_i }
    end
end

这是我得到的错误:

大家有什么建议吗?

【问题讨论】:

  • 请不要将图像用于数据、错误或代码。我们不能复制/粘贴强制我们输入的信息。

标签: ruby json csv hash


【解决方案1】:

这不是向 csv 文件添加标题的方式。当您生成 csv 内容时,标题行只是常规行。并且应该这样生成。示例:

CSV.open("your_csv.csv", "w") do |csv| 
  csv << ['new_header', 'value1', 'value2'] # the headers
  JSON.parse(File.open("tojson.txt").read).each do |hash| 
    row = [generate, values, for, headers, above]
    csv << row
  end
end

【讨论】:

  • 嗯,你也可以CSV.open("foo.csv", "w", headers: arr, write_headers: true).
  • @Jordan:嗯,以前从未使用过这种形式。感谢提及。
【解决方案2】:

您没有@csv 变量。你有一个csv 一个。

【讨论】:

    猜你喜欢
    • 2021-07-10
    • 1970-01-01
    • 2017-09-08
    • 1970-01-01
    • 2020-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多