我有一个字典列表,我想遍历字典列表,然后有一个内部循环,从每个字典中拆分一个字符串,然后遍历该拆分字符串。有没有办法做到这一点?
我尝试了一些事情:
from shutil import copy
import os
tools_dir = os.path.expanduser('~/tools/HTML_tools')
copy(os.path.join(tools_dir, 'template.html'), '.')
字典列表:
- debug:
msg: '{{ "Group: " + item.Group + ", AddMembers: " + item.1 }}'
with_nested:
- '{{ domainGroups.list | selectattr("AddMembers", "ne", "") | list }}'
- '{{ AddMembers.split("|") }}'
- debug:
msg: '{{ "Group: " + item.Group + ", AddMembers: " + item.1 }}'
loop: '{{ domainGroups.list | selectattr("AddMembers", "ne", "" ) | list | subelements(AddMembers.split("|")) }}'
我希望我尝试过的一种方法能起作用,但是通常我会得到“未定义AddMembers”或“ unicode事物没有属性“ AddMembers””的一些变体
答案 0 :(得分:1)
让我们在第一步中简化字典。以下任务
- set_fact:
domainGroups_selected: "{{ domainGroups_selected|default([]) +
[ {'Group': item.Group,
'AddMembers': item.AddMembers.split('|')}] }}"
loop: "{{ domainGroups }}"
when: item.AddMembers|length > 0
- debug:
var: item
loop: "{{ domainGroups_selected }}"
给予
"item": {
"AddMembers": [
"members1",
"members2"
],
"Group": "Group2"
}
...
"item": {
"AddMembers": [
"members1",
"members2",
"members3"
],
"Group": "Group3"
}
然后用子元素循环列表。下面的任务
- debug:
msg: "Group: {{ item.0.Group }} AddMember: {{ item.1 }}"
loop: "{{ domainGroups_selected|subelements('AddMembers')|list }}"
给予
"msg": "Group: Group2 AddMember: members1"
"msg": "Group: Group2 AddMember: members2"
"msg": "Group: Group3 AddMember: members1"
"msg": "Group: Group3 AddMember: members2"
"msg": "Group: Group3 AddMember: members3"