【问题标题】:Find json key where another key is condition within same object in Ansible查找 json 键,其中另一个键是 Ansible 中同一对象内的条件
【发布时间】:2020-04-03 12:42:10
【问题描述】:

如何将键值列为与条件相同的对象中的另一个键 - 我想将所有“guest_name”列出到“power_state”为“poweredOn”的新列表中

我正在使用 vmware_vm_info 模块并使用 json_query

解析数据

输出:

    {
        "guest_name": "Ubuntu sec 10.9",
        "ip_address": "",
        "power_state": "poweredOff",
    },

    {
        "guest_fullname": "Ubuntu Linux (64-bit)",
        "guest_name": "Ubuntu 10.8",
        "power_state": "poweredOn",
    },...]

想要的结果:

"guest_name": "name", "name2",...

【问题讨论】:

    标签: json parsing ansible vmware


    【解决方案1】:

    使用selectattr 过滤所有poweredOn 实例,然后使用map 过滤器从每个实例中提取guest_name

    鉴于 json 位于 my_var,您可以按以下方式进行操作:

    - debug:
        msg: "{{ my_var | selectattr('power_state', 'match', 'poweredOn') | map(attribute='guest_name') | list }}"
    

    这将输出“powerOn”的实例列表:

    ok: [localhost] => {
        "msg": [
            "Ubuntu 10.8"
        ]
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-24
      • 2023-03-11
      • 2018-04-12
      • 2019-08-08
      • 1970-01-01
      • 2017-12-01
      • 2022-11-19
      • 2023-01-16
      相关资源
      最近更新 更多