jqを使用して、浅いオブジェクトの配列をエンコードする任意のJSONをCSVに変換するにはどうすればよいですか?
このサイトには、フィールドをハードコーディングする特定のデータモデルをカバーするQ&Aがたくさんありますが、この質問への回答は、JSONがあれば機能しますが、スカラープロパティを持つオブジェクトの配列(deep / complex /これらを平坦化することは別の問題であるため、サブオブジェクト。結果には、フィールド名を示すヘッダー行が含まれているはずです。最初のオブジェクトのフィールド順序を維持する回答が優先されますが、これは必須ではありません。結果は、すべてのセルを二重引用符で囲むか、引用符が必要なセルのみを囲む場合があります(例: 'a、b')。
例
入力:
[ {"code": "NSW", "name": "New South Wales", "level":"state", "country": "AU"}, {"code": "AB", "name": "Alberta", "level":"province", "country": "CA"}, {"code": "ABD", "name": "Aberdeenshire", "level":"council area", "country": "GB"}, {"code": "AK", "name": "Alaska", "level":"state", "country": "US"} ]
可能な出力:
code,name,level,country NSW,New South Wales,state,AU AB,Alberta,province,CA ABD,Aberdeenshire,council area,GB AK,Alaska,state,US
可能な出力:
"code","name","level","country" "NSW","New South Wales","state","AU" "AB","Alberta","province","CA" "ABD","Aberdeenshire","council area","GB" "AK","Alaska","state","US"
入力:
[ {"name": "bang", "value": "!", "level": 0}, {"name": "letters", "value": "a,b,c", "level": 0}, {"name": "letters", "value": "x,y,z", "level": 1}, {"name": "bang", "value": "\"!\"", "level": 1} ]
可能な出力:
name,value,level bang,!,0 letters,"a,b,c",0 letters,"x,y,z",1 bang,"""!""",0
可能な出力:
"name","value","level" "bang","!","0" "letters","a,b,c","0" "letters","x,y,z","1" "bang","""!""","1"
json2csv
はstackoverflow.com/questions/57242240/にあります