问题标签 [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 投票
11 回答
33533 浏览

python - 类似 Xpath 的嵌套 python 字典查询

有没有办法为嵌套的 python 字典定义 XPath 类型查询。

像这样的东西:

我还需要选择嵌套列表;)

这可以通过@jellybean 的解决方案轻松完成:

[EDIT 2016] 这个问题和公认的答案是古老的。较新的答案可能比原始答案做得更好。但是我没有测试它们,所以我不会更改接受的答案。

0 投票
3 回答
15702 浏览

amazon-web-services - 使用 aws-cli 1.3.6 在其他数据中列出实例名称

使用 aws-cli 1.3.6 我正在尝试获取我的 ec2 实例的简单表,其中包含名称和状态。我一直在查看 --query 和 JMESpath 文档,并且能够选择 Map 的“值”项,其中“键”项等于名称。这对于获取实例名称很有用。因此,下面的代码似乎工作

并提供这个:

但是,如果我想添加状态,事情就不会像我预期的那样。使用

提供

而不是带有名称和状态的两列表。

如果我们将输出转换为 JSON,我们可以看到标签选择返回一个列表(单元素列表),这可能是问题所在:

我无法通过选择第一个元素将此列表转换为标量。这,行不通。返回一个空列表作为名称。

和这个一样

我想出解决这个问题的唯一方法是通过 join 函数。因为我只期望一个元素,所以没关系,但我似乎有点 hacky。

因此,问题是:有没有什么方法可以选择过滤器结果的第一个元素,(?Key==XXXX)记住后缀[0]似乎不起作用?

提前致谢!

0 投票
2 回答
51867 浏览

amazon-s3 - Filter S3 list-objects results to find a key matching a pattern

I would like to use the AWS CLI to query the contents of a bucket and see if a particular file exists, but the bucket contains thousands of files. How can I filter the results to only show key names that match a pattern? For example:

#xA;
0 投票
1 回答
1079 浏览

macos - 在 Mac OSx 中安装 jmespth-term

我无法安装jmespath-term

它给了我:

蟒蛇版本

点子版本

0 投票
2 回答
2184 浏览

amazon-web-services - JMESPath 过滤器表达式中的引用父元素

我有以下 JMESPath 查询

给出这样的输出

我想找到一种RootDeviceName在过滤器表达式中引用 from的方法,BlockDeviceMappings而不是硬编码/dev/sda1设备名称,因为有时是/dev/xvda这样。但是,我找不到在过滤器表达式中引用父元素的方法。

另一种选择是将RootDeviceNameand映射InstanceId到所有设备的投影上,然后将其通过管道传输到过滤器表达式,但语法似乎也不支持在投影中包含父元素。

我是否遗漏了什么,或者这仅仅是 JMESPath 语法的限制?

0 投票
2 回答
3522 浏览

jmespath - 如何使用 JMESPath 将两个数组(`keys` 和 `values`)组合成一个对象?

我有一个带有两个数组的 JSON 对象——一个keys数组和一个values数组,两者的长度相同。使用 jmespath,我想使用keys数组的值作为键和values数组的值作为值来构造一个新对象,就像array_combine在 PHP 中一样。

例如,这是输入:

这是我期待的输出:

是否有任何内置功能可以实现这一点?

0 投票
1 回答
2223 浏览

python - JMESPath 嵌套 OR 语句

我在 Python 中使用JMESPath来有效地解析大型字典/列表。

我有一个字典列表,对于每个字典,我想获取某个值或返回null并将结果放入列表中。即即时从每个字典中选择一个字段,但包括一个字段不存在的空值。

例如,我的输入是:

我想要的结果是:

因此,对于列表中的每个字典,我想要路径,或者如果路径不存在,foo.bar我想要返回。None我想要的伪 JMESPath 表达式是:

即选择所有列表,然后尝试路径 foo.bar 或返回文字 null。但是括号在语法上是不正确的。如何将 OR 表达式封装在括号中?我得到的最好的 JMESPath 表达式是:

前两个术语[*][foo.bar||``]将每个元素放入嵌套在列表中的列表中[['yes1'], ['yes2'], ['']],然后[]将返回的列表展平。然而,这很令人困惑,并阻止我返回一个空值,所以我返回一个空字符串。

有没有人有任何想法?我在语法上错过了什么吗?

0 投票
2 回答
8157 浏览

bash - 带有 bash 变量的 JMESPath 查询表达式

使用简单的 aws cli 查询来检查 Lambda 函数是否存在,如果存在则回显关联的角色:

但是,$fname 似乎解析为 aws 命令中的空字符串。我已经尝试过逃避反勾号,将 ` 换成 ' 和许多其他的颠簸编辑(是的,我在调用脚本时在 cl 上传递了一个字符串 :)

如何在 bash 脚本中正确地将变量传递给 JMESPath 查询?

0 投票
2 回答
184 浏览

asp.net - OData 和 JMESPath 有什么关系?

我遇到了 JMESPath,想在 asp.net webapi 上使用 JMESPath 而不是 OData(它实际上是可替换的吗?)。有人可以对我有所了解吗?

提前致谢

帕万

0 投票
1 回答
536 浏览

javascript - 使用 jmespath 通过两个参数找到最小值和最大值

我有这样的对象,我需要用 jmespath 评估哪个“最便宜”

输出应该是:'a'对象

我在做:

但没有运气