【发布时间】:2022-06-16 12:48:21
【问题描述】:
我还是 Jinja 的新手,所以如果我的问题措辞不当,请提前道歉。我正在尝试显示访问嵌套字典中特定值所需的键的映射。我希望输出显示字典的键,箭头指向下一个嵌套键,依此类推key1 --> key2 --> key3 --> value
我正在使用的字典如下所示:
x = {
"food": {},
"dessert": {},
"vehicles": {
"trucks": {},
"cars": {
"brands": {
"german brands": ["Audi", "BMW"],
"american brands": ["Dodge", "Chevy"]
},
"seats": {
"types": ["leather"]
}
},
"color": ["black", "white"]
},
"electronics": {"laptops": {}}
}
我希望输出以如下格式显示结果:
food --> {}
dessert --> {}
vehicles --> trucks --> {}
vehicles --> cars --> brands --> german brands --> Audi
vehicles --> cars --> brands --> german brands --> BMW
vehicles --> cars --> brands --> american brands --> Dodge
vehicles --> cars --> brands --> american brands --> Chevy
vehicles --> cars --> seats --> types --> leather
vehicles --> color--> black
vehicles --> color--> white
electronics --> laptops --> {}
我的代码可以做到这一点,但它只检查最终值是否是一个列表并打印列表及其关联的键(它不打印之前导致它的嵌套键,仅 与值关联的键)。
<table style="width:100%">
<tr>
<th>Nested Items Table</th>
</tr>
{% for key, value in _.x.items() recursive %}
{% if value is mapping %}
{{ loop(value.items()) }}
{% else %}
<tr>
<td>{{ key }} --> {{ value }}</td>
</tr>
{% endif %}
{% endfor %}
</table>
如果你运行上面的代码,我想你会明白我的意思。如果有人能够帮助我,或者可能引导我朝着正确的方向前进,我将不胜感激!
【问题讨论】: