如何使用 jinja2 检查字典中的列表元素?
Posted
技术标签:
【中文标题】如何使用 jinja2 检查字典中的列表元素?【英文标题】:How do I check a list element inside a dict using jinja2? 【发布时间】:2019-07-20 07:41:38 【问题描述】:我有一个如下所示的列表,我希望使用 jinja2 访问/检查模板中 dict 中列表索引处的值:
Dict : '110.34.214.180': [['SR12'], 'Unavailable', '0'],
'110.34.214.110': [['SR9'], 'Unavailable', '0'],
'105.34.214.184': [['SR11'], 'Available', '0'],
'110.34.214.100': [['SR2'], 'Unavailable', '0'],
'110.34.214.124': [['SR7'], 'Unavailable', '0'],
'110.138.249.238': [['SR5'], 'Unavailable', '0']
我想检查这样的东西,值[1]是否可用,然后只打印列表的值[0]:
% for stations, value in AliasDict.items %
% if value[1] == 'Unavailable' %
<a href="#"> forloop.counter. stations : value[0]</a>
% endif %
% endfor %
我该如何做到这一点?
def render_home_elements(self, request):
return render(request, 'home/home.html','AliasDict':self.teDict)
【问题讨论】:
【参考方案1】:你已经很接近了。
试试:
import jinja2
AliasDict = '110.34.214.180': [['SR12'], 'Unavailable', '0'],
'110.34.214.110': [['SR9'], 'Unavailable', '0'],
'105.34.214.184': [['SR11'], 'Available', '0'],
'110.34.214.100': [['SR2'], 'Unavailable', '0'],
'110.34.214.124': [['SR7'], 'Unavailable', '0'],
'110.138.249.238': [['SR5'], 'Unavailable', '0']
s = """% for stations, value in AliasDict.items() %
% if value[1] == 'Unavailable' %
<a href="#"> loop.index. stations : value[0]</a>
% endif %
% endfor % """
template = jinja2.Environment().from_string(s)
data = template.render(AliasDict=AliasDict)
print(data)
【讨论】:
抱歉,我想在 HTML 本身中呈现页面。不在 python 中。 在你的html中使用变量s
中的内容以上是关于如何使用 jinja2 检查字典中的列表元素?的主要内容,如果未能解决你的问题,请参考以下文章