Python 格式抛出 KeyError
Posted
技术标签:
【中文标题】Python 格式抛出 KeyError【英文标题】:Python format throws KeyError 【发布时间】:2012-03-08 18:51:00 【问题描述】:以下代码sn-p:
template = "\
function routes(app, model)\
app.get('/preNewclassName', function(req, res)\
res.render('className'.ejs, );\
);\
);".format(className=className)
抛出一个 KeyError:
Traceback (most recent call last): File "createController.py", line 31, in <module>
);".format(className=className) KeyError: ' app'
有人知道为什么吗?
【问题讨论】:
您需要将所有不应格式化的大括号加倍。 你遇到过multiline strings吗?如果使用三引号,则不必转义每个换行符。 str.format() does not work, keyError的可能重复 【参考方案1】:该代码中有许多未转义的大括号。 Python 认为所有大括号都是占位符,并试图全部替换它们。但是,您只提供了一个值。
我希望您不希望所有大括号都成为占位符,因此您应该将不想替换的大括号加倍。如:
template = """
function routes(app, model)
app.get('/preNewclassName', function(req, res)
res.render('className'.ejs, );
;
);""".format(className=className)
我还冒昧地对字符串文字使用了三引号,这样您就不需要在每行末尾使用反斜杠了。
【讨论】:
非常有帮助的答案。感谢您与大家分享这个。 :)以上是关于Python 格式抛出 KeyError的主要内容,如果未能解决你的问题,请参考以下文章