字符串替换-不支持格式字符'}'
String substitution - unsupported format character '}'
我正在尝试对html/javascript模板进行一些字符串替换,但是当页面字符串变量的代码中有大括号时,我会得到错误"ValueError:不支持的格式字符'}'(0x7d)"。如果我没有任何字符串替换,一切都很好。感谢阅读!
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)
您的"template"包含字符串% }
(就在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 '
或者,对于不太容易出现此类问题的格式,使用较新的.format()
方法,尽管在这种特定情况下,{ height: 100% }
花括号对会出现问题,因此您的里程数可能会有所不同;你必须加倍(所以{{ height: 100% }}
)。
相关文章:
- 如何使用javascript或html下载PDF格式的填写表单
- 使用正则表达式将输入格式设置为单字符逗号、单字符逗号等
- 元素的内容必须由格式正确的字符数据或标记组成
- 字符串替换-不支持格式字符'}'
- 自定义angularjs过滤器日期时间格式额外字符
- 如何在不丢失格式的情况下连续淡入() 元素文本的每个字符,包括嵌套元素
- 谷歌分析实验导致格式良好的字符数据或标记错误
- 从JSON格式中修剪不需要的字符
- 如何将 base64 编码的字符串格式化为 x 个字符的可 jslinable 行
- 如何向字符串添加连字符(将其格式化为 16 位序列号)
- 如何设置文本框的格式和允许的字符
- Chrome扩展ajax发送格式错误的重音字符
- geoop-lite字符格式
- 使用Javascript从格式错误的URL中提取字符串,基于多个字符
- 将电话号码格式化为10位数字/删除多余字符
- 如何在Java中迭代如下格式的日期范围25-12-2012到31-12-2012(应保留连字符)
- 最有效的方式来转换字符在多跨度,同时保持html格式
- 在以JSON格式导入MongoDB之前,清除HTTP响应头中的非法字符
- Javascript验证日期格式(包括连字符)
- 输入字段只允许数字和连字符,并在特定的格式