【发布时间】:2014-12-17 23:19:11
【问题描述】:
我有一个很大的哈希数组,像这样
# note that the key order isn't consistent
data = [
{foo: 1, bar: 2, baz: 3},
{foo: 11, baz: 33, bar: 22}
]
我想把它变成 CSV
foo,bar,baz
1,2,3
11,22,33
我这样做是这样的:
columns = [:foo, :bar, :baz]
csv_string = CSV.generate do |csv|
csv << columns
data.each do |d|
row = []
columns.each do |column|
row << d[column]
end
csv << row
end
end
有没有更好的方法来做到这一点?我想做的是......
csv_string = CSV.generate do |csv|
csv << [:foo, :bar, :baz]
data.each do |row|
csv.add_row_hash row
end
end
【问题讨论】:
-
为什么你有一个大的哈希数组?您是否有可能跳过该步骤并在源代码处生成 CSV?