如何使用 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