如何使用FasterCSV指定要写入的字段

时间:2011-12-12 18:52:46

标签: ruby rubygems

在不同的时间,我发现自己有一系列哈希'在我的ruby脚本中,我想将它们写入csv文件。我知道我可以使用FasterCSV。

我的问题是,如果我想指定某些字段该怎么办?如何在不自己进行哈希过滤的情况下完成此操作?理想情况下,我可以将字段列表指定为FasterCSV,然后附加哈希值。然后,FasterCSV会将值过滤到与指定字段匹配的键,然后完成剩下的工作。

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

1 个答案:

答案 0 :(得分: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"

希望有所帮助。