ruby - 如何将散列保存到 CSV 中

标签 ruby csv hash append

我是 ruby​​ 新手,所以请原谅我的笨拙。

我有一个包含两列的 CSV。一种用于动物名称,另一种用于动物类型。 我有一个散列,所有键都是动物名称,值是动物类型。我想在不使用 fasterCSV 的情况下将哈希写入 CSV。我想到了几个最简单的想法。这是基本布局。

require "csv"

def write_file
  h = { 'dog' => 'canine', 'cat' => 'feline', 'donkey' => 'asinine' }

  CSV.open("data.csv", "wb") do |csv|
    csv << [???????????]
  end
end

当我打开要读取的文件时,我打开了它 File.open("blabla.csv", headers: true) 是否有可能以同样的方式写回文件?

最佳答案

如果你想要列标题并且你有多个散列:

require 'csv'
hashes = [{'a' => 'aaaa', 'b' => 'bbbb'}]
column_names = hashes.first.keys
s=CSV.generate do |csv|
  csv << column_names
  hashes.each do |x|
    csv << x.values
  end
end
File.write('the_file.csv', s)

(在 Ruby 1.9.3-p429 上测试)

关于ruby - 如何将散列保存到 CSV 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8183706/

相关文章:

ruby - 在 Ruby 中使用拆分函数时的答案差异

csv - 如何通过实现getSplits增加hadoop map task

javascript - Ruby 使用 map 更新部分内容 : You have included the Google Maps API multiple times on this page. 这可能会导致意外错误

ruby - 使用 ruby​​ 计算太阳体的 x、y、z 位置

r - Powershell,R,导入Csv,选择对象,导出csv

java - 基于路径的有界哈希集的无界哈希集

php - 我应该如何使用 PHP 散列我的密码?

postgresql - 唯一索引是否更适合列搜索性能? (PGSQL & MySQL)

ruby-on-rails - 按数据对 JSON 进行分组?

tsql - 将多行转换为一行,并以逗号作为分隔符