有没有办法在JMESPath中实现以下行为?
我有这样的字典:
{
"foo": "aa",
"bars": [
"bb",
"cc"
]
}
我正在寻找如下结果。标量值" aa"应该与" bar"的所有项目结合使用。数组得到一个平坦的dicts数组。 (从" bar"到" bar"的变化会很好但不是必须的,我主要寻找元素的组合。)
[
{
"foo": "aa",
"bar": "bb"
},
{
"foo": "aa",
"bar": "cc"
}
]
如果有人知道实现这一目标的方法会很棒。
答案 0 :(得分:0)
目前不可能,并且需要能够访问表达式中的父对象。已在github issue #22上请求该功能。
现在您可以创建一个包含foo
的不的对象列表:
map(&{bar: @}, bars)
返回
[
{
"bar": "bb"
},
{
"bar": "cc"
}
]
当然,你可以添加foo
这样的静态值:
map(&{foo: "aa", bar: @}, bars)
但是,假设父对象功能将实现为变量$
,正如this github注释中所建议的那样,您将获得所需的结果表达
map(&{foo: $, bar: @}, bars)
请注意,尚未使用。