[英]Accessing nested dictionary using Jinja2 templating
所以我有這個字典列表:
mylist = [{'Score': 33, u'interfaces': [{u'ip_addresses': [{u'value': u'172.16.153.71', }]}]}]
我想使用 jinja2 訪問“值”鍵。
但是,我似乎無法獲得適合它的語法。 我知道它可能是三個相互內部的 for 循環,但我做對了。
我可以在 python 中做到這一點:
for i in mylist:
for x in i['interfaces']:
for y in x['ip_addresses']:
print y["value"]
所以也許是這樣的?:
{% for obj in mylist %}
{%for obj2 in obj %}
{for obj3 in obj2 %}
{{ obj3.value }}",
{% endfor % }
{% endfor % }
{% endfor % }
但這顯然行不通。 任何幫助將不勝感激。 謝謝。
讓我們將您的 Python 循環與 Jinja 循環進行比較。 外部 Python 循環是:
for i in mylist:
對應的 Jinja 循環是:
{% for obj in mylist %}
那看起來不錯。 但是,雖然您的下一個 Python 循環看起來像:
for x in i['interfaces']:
您對應的 Jinja 循環是:
{%for obj2 in obj %}
這顯然不是在做同樣的事情; 並且由於您已經擁有 Python 循環中的邏輯,因此不清楚您為什么要進行此更改。 等效循環將是:
{% for obj2 in obj.interfaces %}
或者:
{% for obj2 in obj['interfaces'] %}
...與 Python 更接近,但對於 Jinja 則不那么慣用。 下一個嵌套循環也有同樣的問題。
如果你重寫你的 JInja 循環以簡單地遵循 Python 邏輯,你應該一切都准備好了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.