我有一个哈希,需要通过以下代码将其写入csv。
require 'csv'
my_array = [ {name: 'Toyota', model: 'Corolla', engine: [ 4, 6]},{name: 'Honda', model: 'Civic', engine: [ 6, 8]} ]
CSV.open("my_csv.csv", "w", headers: my_array.first.keys, :write_headers => true) do |csv|
my_array.each do |hash|
csv << hash.values
end
end
如您所见,其中一个键-engine
中存储着一组值。在我的csv中,如下所示。
name,model,engine
Toyota,Corolla,"[4, 6]"
Honda,Civic,"[6, 8]"
除了像以上engine
这样的"[4, 6]"
列之外,我如何在保持csv格式的同时又像4,6
那样得到它。当必须将一组值存储在csv列中时,通常的惯例是什么?
答案 0 :(得分:2)
没有“典型惯例”是将数组(和其他任何对象)存储在CSV列中。 CSV应该存储文本值。
如果要在单列中包含它们,只需加入数组:
csv << hash.values.map { |e| [*e].join(',') }