【发布时间】:2020-11-25 11:04:24
【问题描述】:
我从这个结构开始:
[{
"experiment": "ex1",
"models": [{
"name": "model1",
"reference": 0.1,
"code": [{
"name": "foo",
"version": "a",
"value": 0.2
},{
"name": "foo",
"version": "b",
"value": 0.2
},{
"name": "bar",
"version": "a",
"value": 0.15
}]
},{
"name": "model2",
"reference": 0.12,
"code": [{
"name": "foo",
"version": "a",
"value": 0.09
},{
"name": "baz",
"version": "a",
"value": 0.15
}]
}]
}]
我想要这样的结果:
{
"model": "model1",
"code": "foo",
"version": "a"
}
{
"model": "model1",
"code": "foo",
"version": "b"
}
{
"model": "model1",
"code": "bar",
"version": "a"
}
{
"model": "model2",
"code": "foo",
"version": "a"
}
{
"model": "model2",
"code": "baz",
"version": "a"
}
所以我写了以下查询。
.[] | { "model": .name, "code": .code[].name, "version": .code[].version }
问题在于,在输出结构中每次使用.code[],结果都会相乘,导致很多重复。我怎样才能避免这种情况,只得到想要的结果?
【问题讨论】: