如何使用Ruby在CSV中每行创建多个列

时间:2015-07-07 10:55:29

标签: ruby csv ruby-2.1.3

好的,我有一个包含几个属性的哈希。我希望将此哈希的某些属性添加到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

除了我每个人都喜欢这样的事实之外,一切都很好:

[&#34;&#34;,&#34; 300&#34;,&#34;&#34;,&#34;&#34;,&#34;&#34;,& #34;东西&#34;,&#34;东西&#34;,&#34; GB&#34;,&#34;东西&#34;]

作为一个我不想要的数组。我希望数组中的每个元素都在一个新列中。问题是我不知道我会有多少项目,否则我可以这样:

CSV.open('test_result.csv', 'w') do | csv |
        arr.each do | e |
            csv << [e[0], e[1], ...]
        end
      end
    end

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

csv << [e]更改为csv << e