You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python的string.format()中使用JSON对象填充HTML模板?

问题分析与解决方案

你遇到的问题是因为Python的str.format()方法不支持用点语法({links.one})访问字典的键——你传入的links是一个Python字典,而不是拥有属性的类实例,所以模板里的links.one无法被正确解析。

另外先提个小细节:你的JSON文件最后一个键值对末尾多了个逗号("two" : "www.two.com", }),部分JSON解析器会因此报错,建议先修正为:

{ "links" : { "one" : "www.one.com", "two" : "www.two.com" } }

下面给你两种可行的解决方法:

方法一:修改模板语法,适配字典索引

保持原有Python代码不变,把HTML模板里的{links.one}改成字典索引的写法:

... <a href={links['one']}></a> ...

这样str.format()就能正确识别并从links字典中取出对应的值了。

方法二:拆包字典,简化模板写法

这种方法更简洁,推荐使用。修改Python代码,用**操作符把jsonData['links']字典拆包为关键字参数,模板里直接用键名引用即可:

import json

with open('./jsonInp.json') as jsonFile:
    jsonData = json.load(jsonFile)
with open('brandedTemplate.html', 'r') as inp_f:  # 读取文件用r模式足够,无需r+
    htmlInp = inp_f.read().format(**jsonData['links'])

对应的HTML模板可以简化为:

... <a href={one}></a> ...
... <a href={two}></a> ...

额外提醒:打开文件时尽量都用with语句(你已经给第一个文件用了,第二个也建议跟上),它会自动管理文件句柄,避免资源泄漏。

内容的提问来源于stack exchange,提问作者chunkybyte

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:07:11