【问题标题】:json file to jinja2 template pythonjson文件到jinja2模板python
【发布时间】:2020-11-21 18:48:55
【问题描述】:

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

【问题讨论】:

  • 你能用{{ vlan.description }}代替{{ value }}吗?

标签: python json jinja2


【解决方案1】:

我会先把 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 ('描述','默认') ('名称','默认') VLAN 2 (“描述”,“伊洛”) ('名称', '国际劳工组织')

【讨论】:

  • 您尝试过请求模块吗? JSON_filename.JSON()
  • 不,我没有,我希望只用 jinja 模板来解决所有这些问题......
【解决方案2】:

我已经解决了

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))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-17
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    • 2014-02-11
    • 1970-01-01
    • 2018-03-31
    • 1970-01-01
    相关资源
    最近更新 更多