问题标签 [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.
python - 类似 Xpath 的嵌套 python 字典查询
有没有办法为嵌套的 python 字典定义 XPath 类型查询。
像这样的东西:
我还需要选择嵌套列表;)
这可以通过@jellybean 的解决方案轻松完成:
[EDIT 2016] 这个问题和公认的答案是古老的。较新的答案可能比原始答案做得更好。但是我没有测试它们,所以我不会更改接受的答案。
amazon-web-services - 使用 aws-cli 1.3.6 在其他数据中列出实例名称
使用 aws-cli 1.3.6 我正在尝试获取我的 ec2 实例的简单表,其中包含名称和状态。我一直在查看 --query 和 JMESpath 文档,并且能够选择 Map 的“值”项,其中“键”项等于名称。这对于获取实例名称很有用。因此,下面的代码似乎工作
并提供这个:
但是,如果我想添加状态,事情就不会像我预期的那样。使用
提供
而不是带有名称和状态的两列表。
如果我们将输出转换为 JSON,我们可以看到标签选择返回一个列表(单元素列表),这可能是问题所在:
我无法通过选择第一个元素将此列表转换为标量。这,行不通。返回一个空列表作为名称。
和这个一样
我想出解决这个问题的唯一方法是通过 join 函数。因为我只期望一个元素,所以没关系,但我似乎有点 hacky。
因此,问题是:有没有什么方法可以选择过滤器结果的第一个元素,(?Key==XXXX)
记住后缀[0]
似乎不起作用?
提前致谢!
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;amazon-web-services - JMESPath 过滤器表达式中的引用父元素
我有以下 JMESPath 查询
给出这样的输出
我想找到一种RootDeviceName
在过滤器表达式中引用 from的方法,BlockDeviceMappings
而不是硬编码/dev/sda1
设备名称,因为有时是/dev/xvda
这样。但是,我找不到在过滤器表达式中引用父元素的方法。
另一种选择是将RootDeviceName
and映射InstanceId
到所有设备的投影上,然后将其通过管道传输到过滤器表达式,但语法似乎也不支持在投影中包含父元素。
我是否遗漏了什么,或者这仅仅是 JMESPath 语法的限制?
jmespath - 如何使用 JMESPath 将两个数组(`keys` 和 `values`)组合成一个对象?
我有一个带有两个数组的 JSON 对象——一个keys
数组和一个values
数组,两者的长度相同。使用 jmespath,我想使用keys
数组的值作为键和values
数组的值作为值来构造一个新对象,就像array_combine
在 PHP 中一样。
例如,这是输入:
这是我期待的输出:
是否有任何内置功能可以实现这一点?
python - JMESPath 嵌套 OR 语句
我在 Python 中使用JMESPath来有效地解析大型字典/列表。
我有一个字典列表,对于每个字典,我想获取某个值或返回null
并将结果放入列表中。即即时从每个字典中选择一个字段,但包括一个字段不存在的空值。
例如,我的输入是:
我想要的结果是:
因此,对于列表中的每个字典,我想要路径,或者如果路径不存在,foo.bar
我想要返回。None
我想要的伪 JMESPath 表达式是:
即选择所有列表,然后尝试路径 foo.bar 或返回文字 null。但是括号在语法上是不正确的。如何将 OR 表达式封装在括号中?我得到的最好的 JMESPath 表达式是:
前两个术语[*][foo.bar||``]
将每个元素放入嵌套在列表中的列表中[['yes1'], ['yes2'], ['']]
,然后[]
将返回的列表展平。然而,这很令人困惑,并阻止我返回一个空值,所以我返回一个空字符串。
有没有人有任何想法?我在语法上错过了什么吗?
bash - 带有 bash 变量的 JMESPath 查询表达式
使用简单的 aws cli 查询来检查 Lambda 函数是否存在,如果存在则回显关联的角色:
但是,$fname 似乎解析为 aws 命令中的空字符串。我已经尝试过逃避反勾号,将 ` 换成 ' 和许多其他的颠簸编辑(是的,我在调用脚本时在 cl 上传递了一个字符串 :)
如何在 bash 脚本中正确地将变量传递给 JMESPath 查询?
asp.net - OData 和 JMESPath 有什么关系?
我遇到了 JMESPath,想在 asp.net webapi 上使用 JMESPath 而不是 OData(它实际上是可替换的吗?)。有人可以对我有所了解吗?
提前致谢
帕万
javascript - 使用 jmespath 通过两个参数找到最小值和最大值
我有这样的对象,我需要用 jmespath 评估哪个“最便宜”
输出应该是:'a'对象
我在做:
但没有运气