jsonファイル 'OpenEnded_mscoco_val2014.json'があります.Jsonファイルには121,512個の質問が含まれています。ここ
は、いくつかのサンプルです:特定の制約に基づいてjqを使用してjsonを変換する
"questions": [
{
"question": "What is the table made of?",
"image_id": 350623,
"question_id": 3506232
},
{
"question": "Is the food napping on the table?",
"image_id": 350623,
"question_id": 3506230
},
{
"question": "What has been upcycled to make lights?",
"image_id": 350623,
"question_id": 3506231
},
{
"question": "Is this an Spanish town?",
"image_id": 8647,
"question_id": 86472
}
]
私はcsvファイルにJSONに変換するためにjq -r '.questions | [map(.question), map(.image_id), map(.question_id)] | @csv' OpenEnded_mscoco_val2014_questions.json >> temp.csv
を使用しました。
しかし、ここではcsvでの出力は質問の後にimage_idが続きます。これは上記のコードが行うことです。
予想される出力は次のようになります。
"What is table made of",350623,3506232
"Is the food napping on the table?",350623,3506230
また、それはimage_id <= 10000
とgroup questions having same image_id
にした結果のみをフィルタリングすることは可能でしょうか?例えばjsonの1,2,3の結果は、1つのimage_id、3 question_idの3つの質問を組み合わせることができます。
編集:最初の問題はpossible duplicate question
によって解決されます.jsonファイルを変換するためにjqのコマンドラインで比較演算子を呼び出すことができるかどうかを知りたいですか?この場合、image_id <= 10000
の場合のみjsonからすべてのフィールドを取得します。
あなたの最初の質問は何ですか? – JosephGarrone
[jqを使って任意の単純なJSONをCSVに変換するにはどうすればいいですか?](http://stackoverflow.com/questions/32960857/how-to-convert-arbirtrary-simple-json-to-csv-using-jq) –
json_load()を使用して比較すると大量のメモリが必要になるので、ファイルのサイズが大きすぎるため、jqを使用して値<= 10000のimage_idを持つ出力をフィルタ処理したいとします。 – SupposeXYZ