如何将Ansible中json输出中某个键的值提取到列表中?

问题描述 投票:0回答:1

我将以下数据结构设置为ansible任务结束时的事实。我试图将SITEID提取到列表中。

"myoutput": [
        {
         "ID": "ZG5zLmhvc3QkLm5vbl9ETlNfaG9zdF9yb290LjAuMTUzNzE1MTcwNzgxNC5oZWxsbw", 
        "extattrs": {
            "SITEID": "10"
         }
       }, 
       {
        "ID": "r/ZG5zLmhvc3QkLm5vbl9ETlNfaG9zdF9yb290LjAuMTUzNzE1OTcyMzQzNy5ibGFo0", 
        "extattrs": {
            "SITEID": "16"
        }
    }
]

我尝试了以下但这只是给了我一个未定义的列表。

  name: write myoutput SITEID to list
   set_fact:
     mylist : "{{  host[1].extattrs | map(attribute='SITEID') | list }}"
ansible ansible-2.x ansible-template
1个回答
1
投票

它很简单:

- name: write myoutput SITEID to list
  set_fact:
    mylist: "{{ myoutput | map(attribute='extattrs.SITEID') | list }}"
© www.soinside.com 2019 - 2024. All rights reserved.