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))
我有一个 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))