Ruby 将哈希导出为csv-第一行作为哈希键,后续行作为哈希值

Ruby 将哈希导出为csv-第一行作为哈希键,后续行作为哈希值,ruby,csv,hash,Ruby,Csv,Hash,如何将散列的内容输出到excel/csv,并将键作为第一行和后续行中的值?我有以下内容,但由于我多次打开csv,因此效率不高 rowid = -1 CSV.open("file.csv", 'a') do |csv| details.each do |hsh| rowid += 1 if rowid == 0 csv << hsh.keys# adding header row (column labels) else csv &l

如何将散列的内容输出到excel/csv,并将键作为第一行和后续行中的值?我有以下内容,但由于我多次打开csv,因此效率不高

rowid = -1
CSV.open("file.csv", 'a') do |csv|
  details.each do |hsh|
    rowid += 1
    if rowid == 0
      csv << hsh.keys# adding header row (column labels)
    else
      csv << hsh.values
    end
  end
end

我只想指出,CSV类使您能够编写如下标题:

columns = details[inner_hash].keys.to_a
CSV.open('test.csv', 'w', write_headers: true, headers: columns) do |csv|
  #logic in here
end

我不明白你说的效率低下是什么意思,因为我多次打开csv。您的循环似乎位于csv open块内,该块只执行一次。整个块位于另一个循环内。但仔细想想,我别无选择,只能多次打开csv。很抱歉提出了错误的问题,感谢您指出!当做