0
現在、API呼び出しの複数のJSONオブジェクトを含む.txtファイルを使用しています。これらのオブジェクトをすべて.csvファイルに解析する方法を探しています。過去には、私は1つのJSONオブジェクトを.csvに取得することができましたが、複数のためにそれを行う方法がわかりません。複数のJSONオブジェクトをRubyを使用してCSVに解析する
サンプルJSON:唯一のJSONオブジェクトに動作しているようですが、
[{"field1":["value1"], "field2": ["value2"]}]
[{"field1":["value1"], "field2": ["value2"]}]
[{"field1":["value1"], "field2": ["value2"]}]
私は現在、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現在、私が使用するコードは、1つのJSONオブジェクトからCSVファイルを正常に生成できます。 –