在 string.format() 中使用 JSON 对象?
Using JSON Object inside string.format()?
我有一个 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 模板中使用它?
根据 [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) returns a 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>'
您的 jsonData
变量是一个 python 字典。要以迷你语言格式访问值,您需要使用 {my_dict[my_key]}
。请注意,密钥未包含在引号中。
要修复您的示例,html 输入应如下所示:
...
<a href={links[one]}></a>
...
我有一个 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 模板中使用它?
根据 [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) returns a 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>'
您的 jsonData
变量是一个 python 字典。要以迷你语言格式访问值,您需要使用 {my_dict[my_key]}
。请注意,密钥未包含在引号中。
要修复您的示例,html 输入应如下所示:
...
<a href={links[one]}></a>
...