gpt4 book ai didi

使用过滤器表达式时 Ansible json_query 输出列表

转载 作者:行者123 更新时间:2023-12-05 01:44:24 24 4
gpt4 key购买 nike

我在 OSX 上运行 ansible 2.4.0。以下剧本...

---
- hosts: localhost
connection: local
gather_facts: False

vars:
data:
- name: thing1
desc: I am thing 1
- name: thing2
desc: I am thing 2

tasks:
- debug: msg="{{ data|json_query(\"[1].desc\") }}"
- debug: msg="{{ data|json_query(\"[?name=='thing2'].desc\") }}"

产生以下输出:

PLAY [localhost] ***************************************************************

TASK [debug] *******************************************************************
ok: [localhost] => {
"msg": "I am thing 2"
}

TASK [debug] *******************************************************************
ok: [localhost] => {
"msg": [
"I am thing 2"
]
}

PLAY RECAP *********************************************************************
localhost : ok=2 changed=0 unreachable=0 failed=0

我的问题是,为什么在第二个调试任务中输出的是列表 ([])?

最佳答案

你可以添加ansible过滤器first,像这样:

tasks:
- debug: msg="{{ data | json_query(\"[?name=='thing2'].desc\") | first }}"

它将返回标量值。

关于使用过滤器表达式时 Ansible json_query 输出列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46391253/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com