【问题标题】:How to create multiple columns per row in CSV with Ruby如何使用 Ruby 在 CSV 中每行创建多列
【发布时间】:2015-07-07 10:55:28
【问题描述】:

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

除了我得到每个这样的事实之外,一切都很好:

[“某事”、“300”、“某事”、“某事”、“某事”、“某事”、“某事”、“GB”、“某事”]

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

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

有什么想法吗?

【问题讨论】:

  • 为什么不csv &lt;&lt; e
  • 确实如此!您想添加为答案以便我可以适当地标记它吗?干杯
  • 是的,当然:3。很高兴它有帮助。

标签: ruby csv ruby-2.1


【解决方案1】:

csv &lt;&lt; [e] 更改为csv &lt;&lt; e

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-06
    • 2012-03-19
    • 2011-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多