json файл в шаблон jinja2 python - PullRequest
       15

json файл в шаблон jinja2 python

0 голосов
/ 01 августа 2020

у меня есть 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
#

Ответы [ 2 ]

0 голосов
/ 01 августа 2020

мне удалось решить

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))
0 голосов
/ 01 августа 2020

Я бы сначала взял json и сделал из него python словарь (возможно, попробуйте запросы), а затем: 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 ('описание', 'ilo') ('имя', 'МОТ')

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...