我有这样的JSON数据:
[
{
"tone_id": "anger",
"score": 0.012,
"tone_name": "Anger"
},
{
"tone_id": "disgust",
"score": 0.002,
"tone_name": "Disgust"
},
{
"tone_id": "fear",
"score": 0.14,
"tone_name": "Fear"
},
{
"tone_id": "joy",
"score": 0.42,
"tone_name": "Joy"
}
]
Run Code Online (Sandbox Code Playgroud)
我想将它转换为类似以下内容jq:
{
"anger": 0.012,
"disgust": 0.002,
"fear": 0.14,
"joy": 0.42
}
Run Code Online (Sandbox Code Playgroud)
我能做的最好是:
cat result.json | jq '.[] | { (.tone_id): .score }'
Run Code Online (Sandbox Code Playgroud)
给出了以下内容:
{
"anger": 0.012
}
{
"disgust": 0.002
}
{
"fear": 0.14
}
{
"joy": 0.42
}
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用其他方法轻松完成此操作.只是想知道是否可以使用
jq单线程?
单调用单行:
jq 'map( {(.tone_id): .score} ) | add'
Run Code Online (Sandbox Code Playgroud)
(你也可以.[] | { (.tone_id): .score }在传递之前包括方括号add- 这两种方法是等价的.)