Jsonを列IDと配列にインポートしています。
{
"ObjectID": [
0,
1,
2,
3,
4
],
"Name": [
"Apple",
"Orange",
"Grape",
"Banana",
"Jackfruit"
],
"Color": [
"Red",
"Orange",
"Green",
"Yellow",
"null"
],
"Acidity": [
3.9,
3.5,
2.99,
6,
5.0
]
}
次のjqを使用して通常のCSV形式に変換しようとしています。
ObjectID,Name,Color,Acidity
0,Apple,Red,3.9
1,Orange,Orange,3.5
2,Grape,Green,2.99
3,Banana,Yellow,6
4,Jackfruit,null,5.0
関連質問JQを使用してJSONをヘッダーでCSVにエクスポートする 。一般的な答えを見つけることをお勧めします。
答え1
与えられた答えで遊んでから自分の質問に答える、json配列の一般的な解決策
jq --raw-output 'to_entries|map(.key),(map(.value)|transpose[])|@csv'
答え2
この機能を使用したソリューションtranspose
:
<file jq -r '(to_entries|map(.key)),([.ObjectID,.Name,.Color,.Acidity]|transpose|.[])|@csv'
オブジェクト名を抽出するために使用しますto_entries|map(.key)
。
オブジェクトの内容は配列に格納され、transpose
d は各オブジェクト要素を含む配列を取得します。
結果は@csv
演算子を使用して、配列内のカンマ区切り文字列に変換されます。