我有一个Python3脚本,它使用输入HTML模板并使用此JSON填充一些数据并创建输出HTML。
Python脚本 -
with open('./jsonInp.json') as jsonFile:
jsonData = json.load(jsonFile)
inp_f = open('brandedTemplate.html', 'r+')
htmlInp = inp_f.read().format(links = jsonData['links'])
我的JSON文件 -
{
"links" : {
"one" : "www.one.com",
"two" : "www.two.com",
}
}
现在在输入HTML中使用它,如:
...
<a href={links.one}></a>
...
但这不起作用。 links['one']
也没有。
JSON加载,一切正常。我也可以使用.format函数中的数组。只是找不到如何在任何地方使用这个对象。从type(jsonData['links'])
,我知道它是一个Python字典。
有没有办法在html模板中使用它?
答案 0 :(得分:1)
你的jsonData
变量是一个python dict。要以迷你语言格式访问值,您需要使用{my_dict[my_key]}
。请注意,密钥未包含在引号中。
要修复您的示例,html输入应如下所示:
...
<a href={links[one]}></a>
...
答案 1 :(得分:0)
根据[Python]: Format examples,您应该使用(模板之类):
<a href={links[one]}></a>
as html 格式说明符(因为[Python]: json.load(fp, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)返回dict
)。
示例:
>>> json_dict {'links': {'one': 'www.one.com', 'two': 'www.two.com'}} >>> href_text '<a href={links[one]}></a>' >>> href_text.format(links=json_dict["links"]) '<a href=www.one.com></a>'