JMESPath:在字典中将数组值与标量值组合以获得叉积列表
JMESPath: In a dict combine an array value with a scalar value to get a list of the cross products
有没有什么方法可以在 JMESPath 中实现以下行为?
我有一个这样的字典:
{
"foo": "aa",
"bars": [
"bb",
"cc"
]
}
我正在寻找如下结果。标量值 "aa" 应与 "bars" 数组的每一项组合以获得平面字典数组。 (从"bars"改成"bar"就好了,但不是必须的,我主要是找元素的组合。)
[
{
"foo": "aa",
"bar": "bb"
},
{
"foo": "aa",
"bar": "cc"
}
]
如果有人知道实现此目标的方法,那就太好了。
这目前是不可能的,并且需要能够访问表达式中的父对象。已在 github issue #22.
请求该功能
现在您可以创建对象列表 not 包含 foo
:
map(&{bar: @}, bars)
returns
[
{
"bar": "bb"
},
{
"bar": "cc"
}
]
当然你可以添加 foo
这样的静态值:
map(&{foo: "aa", bar: @}, bars)
但是,假设 父对象 功能将作为变量 $
实现,正如 this github 评论中所建议的那样,您将使用表达式
获得所需的结果
map(&{foo: $, bar: @}, bars)
请注意,这还没有工作。
有没有什么方法可以在 JMESPath 中实现以下行为?
我有一个这样的字典:
{
"foo": "aa",
"bars": [
"bb",
"cc"
]
}
我正在寻找如下结果。标量值 "aa" 应与 "bars" 数组的每一项组合以获得平面字典数组。 (从"bars"改成"bar"就好了,但不是必须的,我主要是找元素的组合。)
[
{
"foo": "aa",
"bar": "bb"
},
{
"foo": "aa",
"bar": "cc"
}
]
如果有人知道实现此目标的方法,那就太好了。
这目前是不可能的,并且需要能够访问表达式中的父对象。已在 github issue #22.
请求该功能现在您可以创建对象列表 not 包含 foo
:
map(&{bar: @}, bars)
returns
[
{
"bar": "bb"
},
{
"bar": "cc"
}
]
当然你可以添加 foo
这样的静态值:
map(&{foo: "aa", bar: @}, bars)
但是,假设 父对象 功能将作为变量 $
实现,正如 this github 评论中所建议的那样,您将使用表达式
map(&{foo: $, bar: @}, bars)
请注意,这还没有工作。