我正在使用Python字符串为电子邮件创建html,如下所示:
# Code setting up the message html
message = "long html message string"
scoped = ""
if settings.DEBUG:
scoped = "scoped"
header = """
<style %s type='text/css'>
@media only screen and (max-width: 480px){
.emailImage{
height:auto !important;
max-width:200px !important;
width: 100% !important;
}
}
</style>
""" % scoped
footer = "html message footer"
message = header + message + footer
# Code sending the message.
问题是,上面的代码给了我错误ValueError: too many values to unpack
。但是,如果我从消息中删除scoped
变量,html就会运行,也就是说,这是有效的(尽管没有按我的意愿将范围变量添加到我的HTML中)。
# Code setting up the message html
message = "long html message string"
header = """
<style type='text/css'>
@media only screen and (max-width: 480px){
.emailImage{
height:auto !important;
max-width:200px !important;
width: 100% !important;
}
}
</style>
"""
footer = "html message footer"
message = header + message + footer
# Code sending the message.
为什么第一个版本会抛出该错误,如何解决ValueError?
答案 0 :(得分:4)
在width
元素后面有一个未转义的%符号,添加另一个%来逃避它:
header = """
<style %s type='text/css'>
@media only screen and (max-width: 480px){
.emailImage{
height:auto !important;
max-width:200px !important;
width: 100%% !important;
}
}
</style>
""" % scoped
请注意,当您摆脱% scoped
时,您不再格式化字符串,%字符不再特殊。