如何解决基于正则表达式合并字典
我想根据 item.name 使用正则表达式将字典合并到 device1.something.org 的结果中。
vars:
gig:
type: "1000BASE-T (1GE)"
virtual:
type: "Virtual"
- name: SETTING INT TYPE 1GE
set_fact:
interfacetype: "{{ interfacetype | default([]) | combine(gig) }}"
loop: "{{ansible_network_resources.interfaces}}"
when: item.name | regex_search('(ge-)')
- name: SETTING INT TYPE VIRTUAL
set_fact:
interfacetype: "{{ interfacetype | default([]) | combine(virtual) }}"
loop: "{{ansible_network_resources.interfaces}}"
when: item.name == "irb" or
item.name == "lo0"
我从可靠的事实中得到的信息如下,使用瞻博网络 junipernetworks.junos.junos_facts
ok: [device1.something.org] => {
"ansible_network_resources.interfaces": [
{
"enabled": true,"mtu": 9216,"name": "ge-0/0/0"
},{
"enabled": false,"name": "ge-0/0/1"
},"name": "ge-0/0/2"
},"name": "ge-0/0/3"
},"name": "ge-0/0/4"
},{
"description": "agaga2","enabled": true,"name": "et-0/1/0"
},"name": "et-0/1/1"
},{
"enabled": true,"name": "xe-0/2/0"
},"name": "xe-0/2/1"
},"name": "xe-0/2/2"
},{
"description": "blabla1","name": "xe-0/2/3"
},"name": "irb"
},"name": "lo0"
}
]
我想得到这样的东西,根据 item.name 我可以创建另一个字典列表,但在这种情况下使用 item.type。
"ansible_network_resources.interfaces": [
{
type: "1000BASE-T (1GE)"
"enabled": true,{
type: "1000BASE-T (1GE)"
"enabled": false,{
type: "1000BASE-T (1GE)"
"enabled": false,{
type: "Virtual"
"enabled": true,"name": "lo0"
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。