首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在复杂数据结构上循环

在复杂数据结构上循环
EN

Stack Overflow用户
提问于 2019-02-01 01:41:51
回答 1查看 148关注 0票数 0

我正在使用Ansible和Jinja2来填充一些配置文件。我试图遍历一个复杂的数据结构,但无法让它打印出我需要的内容。

这是我的数据结构的一个例子:

代码语言:javascript
复制
nodes:
  server-1:
    attrib1: value1
    containers:
      - name: container-1
        ip: 10.2.33.223
      - name: container-2
        ip: 10.2.33.239
  server-2:
    attrib1: value1
    containers:
      - name: container-3
        ip: 10.2.34.48
      - name: container-4
        ip: 10.2.34.50

这是ansible攻略

代码语言:javascript
复制
- hosts: localhost
  vars_files:
    - "vars/nodes.yml"
  tasks:
  - name: create configs
    template:
      src: "template.j2"
      dest: "config.cfg"

jinja2模板应该是这样的,但是我不能正确地使用它

代码语言:javascript
复制
{% for container in nodes.containers %}
  {{ container.name }}: {{ container.ip }}
{% endfor %}

我正在尝试获取所有容器名称和IP,如下所示:

代码语言:javascript
复制
container-1: 10.2.33.223
container-2: 10.2.33.229
container-3: 10.2.34.48
container-4: 10.2.34.50

如有任何帮助,我们将不胜感激:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-01 02:05:14

没有什么比阅读文档更好的了:)

这段Jinja2代码从我的数据结构中得到了我需要的东西:

代码语言:javascript
复制
{% for key, value in nodes.iteritems() %}
  {% for container in value.containers %}
    {{ container.name }}: {{ container.ip }}
  {% endfor %}
{% endfor %}

我仍然需要完全理解字典和列表之间的区别:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54466355

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档