迭代with_nested列表中的字典列表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了迭代with_nested列表中的字典列表相关的知识,希望对你有一定的参考价值。

我有以下with_nested:

- name: Create solr schema for solr_cores
  uri:
    url: http://{{ cassandra_cluster_ips.split(',') | random }}:8983/solr/admin/cores?action={{ solr_core_action }}&core={{ item[1] }}.{{ item[0] }}
    timeout: "{{ solr_create_timeout }}"
  sudo: True

  with_nested:
     -  "{{ solr_cores }}"
 -  "{{ client_names }}"

我想改变我的额外变量:

#solr_cores: ['dom_chunk_meta', 'dom', 'tra_chunk_meta','tra','dom_difference_results','me_output']
 #solr_core_action: "reload"

to:solr_cores:[{'dom_difference_results':'create'},{'dom':'reload'},{'tra':'reload'},{'me_output':'reload'}]

我查看了子元素,但不知道如何将其作为一个简单的字典列表传递给我,以便我可以将它们设置为uri来访问它。

答案

我不是100%确定你想要做什么,但with_dict可能是一个使用的。如果这不适合你,请评论,我会调整答案。

在您的vars /库存中:

solr:
  - name: core1
    create_timeout: 30
    action: reload
  - name: core2
    action: create
    create_timeout: 60

在你的剧本中:

- name: Create solr schema for solr_cores
  uri:
    url: http://{{ cassandra_cluster_ips.split(',') | random }}:8983/solr/admin/cores?action={{ item.value.core_action }}&core={{ item.value.name }}.{{ item.value.other }}
    timeout: "{{ item.value.create_timeout }}"
  sudo: True
  with_dict: "{{ solr }}"

以上是关于迭代with_nested列表中的字典列表的主要内容,如果未能解决你的问题,请参考以下文章

Python代码阅读(第40篇):通过两个列表生成字典

迭代列表中的多个字典[重复]

如何将嵌套列表映射到 Python 中的可迭代字典

迭代与Python中的列表对应的字典键值

连接或扩展字典列表覆盖到最后一个列表

Python 字典items返回列表,iteritems返回迭代器