使用Ruby将多个JSON对象解析为CSV

时间:2016-08-08 20:58:46

标签: json ruby csv parsing object

我目前正在使用包含API调用中的多个JSON对象的.txt文件。我正在寻找一种方法将所有这些对象解析为.csv文件。在过去,我已经能够将一个JSON对象转换为.csv,但我不确定如何为多个JSON对象做这个。

示例JSON:

[{"field1":["value1"], "field2": ["value2"]}]
[{"field1":["value1"], "field2": ["value2"]}]
[{"field1":["value1"], "field2": ["value2"]}]

我目前用于将JSON推送到CSV的代码如下所示,尽管它似乎只适用于一个JSON对象。我认为我需要的是某种循环,它会推动每个对象通过,然后再循环。

require 'csv'
require 'json'

CSV.open("sample.csv", "w") do |csv|
csv << ["field1",
"field2" 
]
  JSON.parse(File.open("json.txt").read).each do |hash| #open json to parse

    csv << hash.values 

   end
end

任何人都可以给我任何建议吗?我找到了多个对象解析的解决方案,但没有一个能真正帮助我解决CSV部分问题。

1 个答案:

答案 0 :(得分:0)

require 'csv'
require 'json'

CSV.open("sample.csv", "w") do |csv|
  csv << ["field1", "field2"]
  File.open("json.txt").each do |line|
    csv << JSON.parse(line).first.values.flatten
   end
end

虽然考虑到格式更改这不太安全,所以我会添加一些验证