我试图找出为什么蟒蛇' format
OUTPUT_HTML_PATH = os.path.join(
os.path.dirname(os.path.abspath(__file__)),
'formats',
'html')
with open(os.path.join(OUTPUT_HTML_PATH, 'index.html'), 'r') as f:
OUTPUT_HTML_PAGE = f.read()
OUTPUT_HTML_PAGE.format(feedback_json=json.dumps(
feedback, indent=2, sort_keys=True),
resources_path=args.resources_path)
format
成功了index.html
。
我尝试通过添加脚本标记来更改index.html
之后:
<script type="application/javascript">
function loadScript(url, callback){
a=1
}
</script>
我正在
KeyError: '\n a=1\n '
我的功能被简化以降低复杂性
答案 0 :(得分:2)
对于python,你使用的是这个字符串:
"""<script type="application/javascript">
function loadScript(url, callback){
a=1
}
</script>"""
如果您查看format
documentation,则会看到它使用&#39; {}&#39;作为将放置输入数据的占位符。所以在你的字符串中你有a=1
在那个占位符里面因此python不知道如何处理它。
为了解决这个问题,你必须在字符串中添加双"{{}}"
来scape它们,这样python就不会将它们识别为格式化标记:
"""<script type="application/javascript">
function loadScript(url, callback){{
a=1
}}
</script>"""
答案 1 :(得分:0)
您需要转义任何不属于格式化广告位的{
或}
字符;通过加倍来实现这一目标:
<script type="application/javascript">
function loadScript(url, callback){{
a=1
}}
</script>
您可能希望查看专门的模板库,例如Jinja2或Mako或any of the other widely used engines;这些让你可以使用条件和其他编程结构,而不仅仅是将值插入到固定的槽中。