问题标签 [jmespath]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
226 浏览

json - 使用 JMESPath,如何过滤至少定义了一个标签的 Consul 服务?

我在我的 Consul 目录中定义了一个服务列表,我想删除那些没有定义标签的服务。

此服务列表如下所示:

我想使用 JMESPath 对其进行过滤以使结果仅包含

但是 JMESPath 过滤的语法对我来说仍然很模糊。

我想我应该使用该length函数来获取属性数组的大小,但是如何呢?

到目前为止,我有一个json.[length(*)>0]过滤器,但它没有显示任何价值。

我应该改变什么以获得非空结果?

0 投票
1 回答
3603 浏览

jmespath - JMESPath - 连接嵌套数组中的项目

我有一个 JSON

我需要将其重组为

我可以使用特定的数组索引来完成这项工作

产生这个结果

我在没有数组索引的情况下尝试了两种方式

还有这个

但这并没有帮助。

关于如何解决这个问题的任何提示?

0 投票
4 回答
14454 浏览

aws-cli - 描述实例的排序输出?

我看到了关于这个主题的上一个问题,但答案只是“将它传送到脚本语言!”,我觉得不满意。我知道 JMESPath 有sort_by, 和sort,但我不知道如何使用它们。

我有

它以随机顺序输出正确的数据。我想按数据的最后一列进行排序,标签名称,aka Tags[?Key==`Name`],原始形式如下所示:

想法?

0 投票
1 回答
296 浏览

json - 使用包含过滤 JMESPath

JMESPath 是 Azure 使用的 JSON 查询语言。

使用来自http://jmespath.org/的自己的示例

如何列出名称中包含字母"l"或字符串的所有位置"le"?谢谢。

0 投票
1 回答
124 浏览

json - 从 JMESPATH 表达式中选择中级属性

我正在尝试使用 Ansible 的 json_query 为特定虚拟机选择集群名称,该 json_query 在后端使用 JMESPATH。我已按照http://jmespath.org上的教程和示例进行操作,但无法构建正确的查询。

我的数据结构如下:

我可以使用下面的查询选择虚拟机('vm-a'),但我正在寻找集群(即'cluster-a')

0 投票
1 回答
2995 浏览

python - jmespath:区分未找到的键和具有空值的键

我在 python 中使用 jmespath 模块来搜索嵌套字典。

我遇到的问题是,如果在字典中找不到密钥,我想引发异常。但是,某些键具有 None 值,这是完全有效的。在 jmespath 找到具有 None 值的键或未找到键的两种情况下,它都返回 None。

有什么方法可以区分这两者吗?据我所知,jmespath 没有等效于“函数”。谢谢!

0 投票
2 回答
1017 浏览

indexof - JMESPath 当前数组索引

在 JMESPath 中使用此查询:

在此示例数据上:

我得到:

如何让 index 属性实际拥有数组的索引?我意识到这@.index不是正确的语法,但无法找到返回索引的函数。有没有办法包含当前数组索引?

0 投票
1 回答
895 浏览

javascript - 使用 JMESPath 从 JSON 对象中提取嵌套元素值

我正在尝试使用JMESPath. 这是我的测试 JSON 数组:

我正在尝试OrderNum使用以下 JMESPath 表达式提取键的值,但它返回null. 这是我的搜索表达式:

为什么这不起作用?

0 投票
1 回答
70 浏览

json - 如何从 ansbile 事实中获取指定值

我有点困惑。我已经尝试过 jmespath,但没有帮助。我需要获得一个包含指定对象的高级对象。在下面的示例中,我们看到了一个关于 HDD 的事实。我需要获取包含指定分区的 HDD 的磁盘名称(或)sdfsdg例如.dm-0sdf1

我有这个 jmespath 查询:

但它只是向我展示了里面的一切sdf1。像这样的过滤器[?partitions=="sdf1"]在这里不起作用,所以问题是:如何sdf在我的示例中保留整个对象?

提前致谢!

0 投票
1 回答
1560 浏览

arrays - 使用 JMESPath 对 JSON 数组的值求和

我正在尝试使用的sum功能,JMESPath但遇到了一些麻烦。我设法弄清楚如何在多个条件下使用搜索功能。这个说法:

返回此 JSON 数组:

现在我想做的是对这些值求和。JMESPath规范说对内置sum函数使用这种语法:

我不明白如何使用这个功能。有人可以帮忙吗?