如何使用 Ruby 在 CSV 中每行创建多列
How to create multiple columns per row in CSV with Ruby
好的,我有一个包含多个属性的散列。我希望将此散列的某些属性添加到 CSV 文件中。
这是我写的:
require 'csv'
require 'curb'
require 'json'
arr = []
CSV.foreach('test.csv') do | row |
details = []
details << result['results'][0]['formatted_address']
result['results'][0]['address_components'].each do | w |
details << w['short_name']
end
arr << details
end
CSV.open('test_result.csv', 'w') do | csv |
arr.each do | e |
csv << [e]
end
end
end
除了我得到的每一个都是这样的事实之外,一切都很好:
["something", "300", "something", "something", "something", "something", "something", "GB", "something"]
作为数组,我不想要。我希望数组的每个元素都在一个新列中。问题是我不知道我会有多少物品,否则我可以这样:
CSV.open('test_result.csv', 'w') do | csv |
arr.each do | e |
csv << [e[0], e[1], ...]
end
end
end
有什么想法吗?
将 csv << [e]
更改为 csv << e
。
好的,我有一个包含多个属性的散列。我希望将此散列的某些属性添加到 CSV 文件中。
这是我写的:
require 'csv'
require 'curb'
require 'json'
arr = []
CSV.foreach('test.csv') do | row |
details = []
details << result['results'][0]['formatted_address']
result['results'][0]['address_components'].each do | w |
details << w['short_name']
end
arr << details
end
CSV.open('test_result.csv', 'w') do | csv |
arr.each do | e |
csv << [e]
end
end
end
除了我得到的每一个都是这样的事实之外,一切都很好:
["something", "300", "something", "something", "something", "something", "something", "GB", "something"]
作为数组,我不想要。我希望数组的每个元素都在一个新列中。问题是我不知道我会有多少物品,否则我可以这样:
CSV.open('test_result.csv', 'w') do | csv |
arr.each do | e |
csv << [e[0], e[1], ...]
end
end
end
有什么想法吗?
将 csv << [e]
更改为 csv << e
。