Javascript 字符串替换-不支持的格式字符“}”
我试图对html/javascript模板进行一些字符串替换,但是,当页面字符串变量在代码中有一个大括号时,我得到了ValueError错误:不支持的格式字符“}”0x7d。如果我没有任何字符串替换,一切正常。谢谢你的阅读Javascript 字符串替换-不支持的格式字符“}”,javascript,python,html,google-app-engine,Javascript,Python,Html,Google App Engine,我试图对html/javascript模板进行一些字符串替换,但是,当页面字符串变量在代码中有一个大括号时,我得到了ValueError错误:不支持的格式字符“}”0x7d。如果我没有任何字符串替换,一切正常。谢谢你的阅读 import webapp2 page = """ <html> <style type="text/css"> html { height: 100% } body { height: 100%; margin: 0;
import webapp2
page = """
<html>
<style type="text/css">
html { height: 100% }
body { height: 100%; margin: 0; padding: 0 }
#map_canvas { height: 100% }
</style>
%(say)s
</html>
"""
class MainHandler(webapp2.RequestHandler):
def write_form(self, say):
self.response.out.write(page % { "say": say })
def get(self):
self.write_form("hello")
app = webapp2.WSGIApplication([('/', MainHandler)],
debug=True)
您的“模板”在100后面包含字符串%},python将其解释为格式化指令 将%%字符加倍到%%即可
>>> page = """
... <html>
... <style type="text/css">
... html { height: 100%% }
... body { height: 100%%; margin: 0; padding: 0 }
... #map_canvas { height: 100%% }
... </style>
... %(say)s
... </html>
... """
>>> page % dict(say='foo')
'\n<html>\n <style type="text/css">\n html { height: 100% }\n body { height: 100%; margin: 0; padding: 0 }\n #map_canvas { height: 100% }\n </style>\n foo\n</html>\n '
或者,使用较新的格式不太容易出现此类问题,尽管在这种特定情况下,{height:100%}花括号对将挂起,因此您的里程可能会发生很大变化;您必须将它们加倍,以便{height:100%}。您的“模板”包含字符串%},正好在100后面,python将其解释为格式化指令 将%%字符加倍到%%即可
>>> page = """
... <html>
... <style type="text/css">
... html { height: 100%% }
... body { height: 100%%; margin: 0; padding: 0 }
... #map_canvas { height: 100%% }
... </style>
... %(say)s
... </html>
... """
>>> page % dict(say='foo')
'\n<html>\n <style type="text/css">\n html { height: 100% }\n body { height: 100%; margin: 0; padding: 0 }\n #map_canvas { height: 100% }\n </style>\n foo\n</html>\n '
或者,使用较新的格式不太容易出现此类问题,尽管在这种特定情况下,{height:100%}花括号对将挂起,因此您的里程可能会发生很大变化;你必须把它们翻一番,这样{{height:100%}