gpt4 book ai didi

python - jinja2 嵌套变量

转载 作者:太空狗 更新时间:2023-10-29 20:37:27 25 4
gpt4 key购买 nike

我目前正在学习 jinja2,我不确定如何以正确的方式处理变量:

这是我在 yaml 中的变量:

---
hosts:
app201.acme.com: {eth0: {ip: 46.0.0.1, netmask: 255.255.255.255}}
graphite.acme.com: {eth0: {ip: 46.0.0.2, netmask: 255.255.255.255},
eth0.1: {ip: 10.2.90.1, netmask: 255.255.255.255}}

这里是 jinja2 模板:

{{ fqdn }}
{% for interface in hosts[fqdn] %}
{{ interface }}
{{ hosts[fqdn].interface.ip }} << doesn't work
{{ hosts[fqdn].{{ interface }}.ip }} << doesn't work
{{ interface.ip }} << doesn't work
{% endfor %}

所以目前我的输出看起来像这样,因为我无法访问 yaml 哈希的第二个维度。

graphite.acme.cometh0.1

eth0

最佳答案

变量hosts 是一个dict。在 dict 中访问值的正确方法是使用 [] 运算符。

{{ fqdn }}
{% for interface in hosts[fqdn] %}
{{ interface }}
{{ hosts[fqdn][interface]['ip'] }}
{% endfor %}

. 运算符用于访问对象的属性。

关于python - jinja2 嵌套变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10894693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com