2011-12-12 42 views
0

在不同的时间,我发现自己在我的ruby脚本中使用了'散列数组',并且我想将它们写出到csv文件中。我知道我可以使用FasterCSV。如何指定要使用哪个字段写FasterCSV

我的问题是,如果我想指定某些领域?我怎么能做到这一点,而不必自己做哈希过滤?理想情况下,我可以将字段列表指定给FasterCSV,然后附加散列。然后,FasterCSV将负责将值过滤到与指定字段匹配的键,然后执行其余的操作。

Python有一个名为DictWriter的库,它可以做到这一点。

+0

如何使用FasterCSV将'散列数组'写入csv文件? – Alexis

+0

我会打电话给hash.values。如果我需要我的csv中的所有键/值对,并且所有哈希具有相同的键,这将工作。我面临的问题是我有几个具有不同值的哈希值,但是所有哈希值都包含某个键的子集(并且这些是我想要写入csv的哈希值)。 – Poul

回答

3

好吧,我问你对詹姆斯(FasterCSV的作者)的问题,这里是他的回答:

如果您有散列的数组,说

[{a: 1, b: 2, x: 0}, {a: 2, b: 3}] 

而你只需要:a和: b键,您可以执行以下操作:

>> CSV.generate(headers: [:a, :b]) do |csv| 
    | [{a: 1, b: 2, x: 0}, {a: 3, b: 10}].each do |row| 
    |  csv << row 
    | end 
    | end 
=> "1,2\n3,10\n" 

希望有所帮助。

相关问题