json 文件到 jinja2 模板 python

json file to jinja2 template python

我有一个 json 文件 vlans.json,其中包含以下内容

{"1": {"description": "default", "name": "default"}, "2": {"description": "ilo", "name": "ILO"}}

我的代码看起来像

from jinja2 import Template
import json

vlans_file = "vlans.json"

with open(vlans_file) as json_file:
    vlans = json.load(json_file)

vlan_template = Template('''
{% for vlan in vlans %}
#
vlan {{ vlan }}
 description {{ value }}
#
{% endfor %}

''')

print(vlan_template.render(vlans = vlans))

并打印

#
vlan 1
 description 
#

#
vlan 2
 description 
#

有谁知道如何获得以下输出?

#
vlan 1
 description default
 name default
#
vlan 2
 description ilo
 name ilo
#

我会先把 json 变成一个 python 字典(也许试试 requests ) 然后 : vlans_file = {"1": {"description": "default", "name": "default"}, "2": {"description": "ilo", "name": "ILO"} }

for a,b in vlans_file.items():
    print("vlan {}".format(a))
    for x in b.items():
        print(x)

输出: VLAN 1 ('description', 'default') ('name', 'default') VLAN 2 ('description', 'ilo') ('name', 'ILO')

我已经解决了

from jinja2 import Template

vlans = {"1": {"description": "default", "name": "default"}}

vlan_template = Template('''
{% for key,value in vlans.items() %}
#
vlan {{ key }}
 description {{ value["description"] }}
 name {{ value["name"] }}
#
{% endfor %}

''')

print(vlan_template.render(vlans = vlans))