Eu tenho duas listas:
"combo_all": [
[
null,
"3",
"210
],
[
"r0004",
"65",
"212"
]
e
"zone_name_list": [
{
"dns_zone_id": 10423,
"name": "212.18.172.in-addr.arpa."
},
{
"dns_zone_id": 10424,
"name": ""210.18.172.in-addr.arpa."."
}
Como posso substituir o terceiro item do "combo_all" (primeira lista) pelo número "dns_zone_id" (da segunda lista) sempre que o primeiro octeto do "nome" corresponder ao terceiro item da primeira lista (210, 212) ?
Crie o dicionário octet1_id
dá
Em seguida, crie uma lista
dá
Exemplo de um manual completo para teste
Em geral, o Ansible não é uma ótima ferramenta para modificar estruturas de dados. Você pode chegar perto do que deseja criando uma nova variável com o conteúdo desejado fazendo algo assim:
Isso será definido
new_combo_all
como:Ele funciona iterando sobre o produto cartesiano de
combo_all
ezone_name_list
, selecionando apenas os pares para os quais oname
prefixo octeto é igual ao terceiro membro da sublista decombo_all
, e usa isso para gerar anew_combo_all
variável.