0
我目前正在使用包含API調用中的多個JSON對象的.txt文件。我正在尋找一種方法將所有這些對象解析爲.csv文件。在過去,我已經能夠將一個JSON對象變成一個.csv文件,但我不確定如何做到這一點。使用Ruby將多個JSON對象解析爲CSV文件
樣品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部分。
什麼是輸出的權利嗎?似乎你需要展開價值觀。嘗試做hash.values.flatten,哈希也應該是一個數組,所以你也需要取出這個值。 –
您有一個包含多個JSON文檔的文件。如果像在示例數據中一樣,文件的每行上都有一個JSON文檔,那麼不用'read',而是使用'foreach'並分別處理每行。如果您是JSON的作者,那麼您應該修正輸出,以便生成適當的JSON,該JSON應該是單個哈希數組(當然,使用JSON編碼)。一旦你解析了一行,然後根據需要將它傳遞給CSV。 –
@IvanYouroff截至目前,我使用的代碼可以從一個JSON對象成功生成一個CSV文件。 –