【发布时间】:2014-02-17 10:07:20
【问题描述】:
在将哈希写入 csv 时需要指针,其中键构成列名,键值是列值。
哈希的格式如下
hash = { 'A' => [ 'v', 'x', 'y' , 'z' ] , 'B' => [ 'm', 'n' , 'o' ] ,
'C' => [ 'i', 'j' , 'k' , 'l', 'm', 'n' , 'o' ] }
所需的 CSV 输出
row 0 (headers) - 'A' , 'B' , 'C'
row 1 - 'v' , 'm' , 'i'
row 2 - 'x' , 'n' , 'j'
row 3 - 'y' , 'o' , 'k'
row 4 - 'z' , '' , 'l'
row 5 - '' , '' , 'm'
row 6 - '' , '' , 'n'
row 7 - '' , '' , 'o'
尝试了以下 -
csv = CSV.open ("file.csv" , 'wb', headers: true)
hash.each do |k, v|
csv[k] = v # CSV::Table has a []= method
end
当时认为 csv[k] = v 应该可以工作,但事实并非如此。
【问题讨论】: