このデータを使用すると、次のようになります。
[
{
"c": "A",
"e": "B",
"score": 0.99,
"v": [
{
"context": "asdf",
"score": 0.98,
"url": "..."
},
{
"context": "bcdfd",
"score": 0.97,
"url": "..."
}
]
},
{
...
}
]
(外部リスト参照)
次を抽出しようとしています。
A, B, 0.99, asdf, 0.98, bcdfd, 0.97
だから私ができる最善は
jq -r '.[] | [.c, .e, .score, .v[].context, .v[].score ] | @csv'
これは
A, B, 0.99, asdf, bcdfd, 0.998, 0.97
私はそれぞれの価値観を知って編むのではなく、ただ吐き出す.v[].context
。.v[score]
私が逃している魔法は何ですか?
ベストアンサー1
.context,.score
私が考える各要素に対してフィルタを実行したいと思いますv
。
$ jq -r '.[] | [.c, .e, .score, (.v[] | .context,.score)] | @csv' file.json
"A","B",0.99,"asdf",0.98,"bcdfd",0.97
map
これは、結果を配列にまとめずに組み込み関数を使用するのと同じです。