问题标签 [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 - 是否有适用于 Windows 10 的 JMESPath 终端?
我已经在我的 Windows 10 机器上安装了 python 3.5.2。我还通过在 Windows 命令行上使用以下命令安装了 JMESPath 终端:
点安装 jmespath 终端
一切顺利,安装成功。
但是当我输入以下内容时:jpterm
它说“jpterm”未被识别。
我是否遗漏了某些东西,或者上面的 pip 命令仅适用于非 Windows 机器?
json - 按内容选择项目的ansible json-query路径
有谁知道在下面的示例 JSON 中可以使用什么 json-query 过滤器来选择 Tigger 的食物?JSON 是大型且相对复杂的 AWS blob 的简化替代品。
一些背景知识:我很高兴地发现 Ansible 有一个 json-query 过滤器。鉴于我试图从 AWS JSON blob 中选择一个元素,这看起来好像正是我所需要的。但是我很快就遇到了麻烦,因为 AWS 对象有标签,我需要按标签选择项目。
我尝试了等效Foods[Tags[(Key='For') & (Value='Tigger')]]
和类似的选择器路径,但没有设法让它工作。使用独立的 json-query 库,例如https://www.npmjs.com/package/json-query我可以使用该parent
属性,但这似乎不在 Ansible 中,除了偏离核心思想之外json 查询。
回避这个问题并使用 jsonpath 选择器可能会更好。jsonpath 类似于 json-query,是从 xpath 翻译而来的。
参考
- ansible 中的 json_query: http ://docs.ansible.com/ansible/playbooks_filters.html#json-query-filter
- json-query 独立节点:https ://www.npmjs.com/package/json-query
- jmespath,库 ansible 使用:http: //jmespath.org/
- json-query standalone python: https://pypi.python.org/pypi/jsonquery/ (red herring)
jmespath - 根据多个键/值对的存在过滤输出
使用 JMESPath,是否可以根据输入中是否存在多个键/值对来过滤输出?
从下面的示例 JSON 中,我想做的是仅提取包含这些键/值对的对象Tags
-
环境 / ABC
项目 / Project2
我能得到的最接近的是选择一个匹配的标签,但我也需要对象的其余部分,我还需要匹配另一个键/值对 -
这是一些示例 JSON 输入 -
这是我需要的输出 -
json - 按属性过滤对象并使用 jmespath 中的键进行选择
我正在尝试根据子属性的值过滤jmespath中对象的属性,并且只想包含子属性设置为特定值的那些属性。
基于此示例数据:
我想获得一个具有启用该功能的所有属性的对象。
我想我可以使用这个 jmespath 查询来过滤property. enabled
设置为 true 的对象。不幸的是,它似乎不起作用,而是返回一个空数组。
*.feature.enabled
或*[feature.enabled]
仅返回布尔值而无需任何上下文。
即使*[?feature.enabled==
true]
可以工作,它也只是属性值的数组,但我也需要键(a
和c
)。有没有办法在 jmespath 中实现这一点?
这都是 ansible playbook 的一部分,所以肯定有一种方法可以以不同的方式(Jinja2 模板或自定义插件)实现选择,但我想尝试 jmespath 并且认为它应该能够完成这样的任务。
jmespath - JmesPath 找到不存在的地方
以下 JmesPath 表达式查找已标记为团队的实例:
您知道如何查找未标记为团队的实例吗?
我努力了:
提前谢谢了!
样本输入:
amazon-web-services - 使用 jmespath 按日期排序
使用 json 输出,例如:
如何返回按 LastModified 排序的两个最新函数?
amazon-web-services - 将 Amazon S3 对象 LastModified 列时区从 UTC 转换为 EST
我正在使用 JMESPath 查询根据 LastModified 日期从 S3 对象中过滤掉文件。S3 LastModified 日期是 UTC,所以我必须转换为 EST。
JSMEPath Query 中是否有可以从 UTC 转换为 EST 的函数?
我的查询是:
ansible - 如何将 Ansible 变量传递给 JMESPath 查询?
鉴于以下剧本:
我想将 ansible 中定义的变量传递bar: ['dd','ee']
给 jmes_path 查询,例如"[?a == 'cc' && contains ( {{bar}} ,b)]"
. 不幸的是,这不起作用,脚本失败。
致命的:[本地主机]:失败!=> {“failed”:true,“msg”:“字段'args'的值无效([]),无法转换为dict。错误是:期望:逗号,得到:文字:解析错误在第 28 列,标记 \"dd\" (LITERAL),用于表达式:\n\"[?a == 'cc' && contains ( [u'dd', u'ee'] ,b)]\"\ n ^\n\n错误似乎出现在“/home/vagrant/testnew/lieferschein-deployment/stack.yml”中:第 16 行第 6 列,但可能\n在文件中的其他位置,具体取决于确切的语法问题。 \n\n违规行似乎是:\n\n tasks:\n - debug:\n ^ here\n"}
但是,在查询本身中定义列表,像 inline 一样"[?a == 'cc' && contains (['dd','ee'],b)]"
,它可以正常工作
是否可以将 Ansible 变量放入查询中,如果可以,如何?
jmespath - Azure CLI jmespath 查询
对于下面的 JSON,我正在尝试获取特定资源类型的位置列表。
这个命令:
最后给了我示例输出(太多了,无法包括所有)。然后如何查询特定的资源类型?我尝试了以下方法,但它不起作用:
第一个命令的示例输出: