首页 > 解决方案 > KeyError:在 HTML 中添加变量时出现“\n 边框”

问题描述

我想在通过 python 发送的 html 电子邮件中包含一个简单的表。

html = """
<!DOCTYPE html>
<html>
<head>
<style>
table, th, td {
  border: 1px solid black;
  border-collapse: collapse;}
th, td {padding: 5px;}
th {text-align: left;}
</style>
</head>
<body>

<h2>Basic HTML Table</h2>

<table style="width:10%">
  <tr>
    <th>Firstname</th>
  </tr>
  <tr>
    <td>Jill</td>
  </tr>
  <tr>
    <td>Eve</td>
  </tr>
</table>

</body>
</html>
"""

它工作正常,然后我想插入一个变量,所以将其更改为:

code = "Somebody"
html = """

<!DOCTYPE html>
<html>
<head>
<style>
table, th, td {
  border: 1px solid black;
  border-collapse: collapse;}
th, td {padding: 5px;}
th {text-align: left;}
</style>
</head>
<body>

<h2>Basic HTML Table</h2>

<table style="width:10%">
  <tr>
    <th>Firstname</th>
  </tr>
  <tr>
    <td>Jill</td>
  </tr>
  <tr>
    <td>{code}</td>
  </tr>
</table>

</body>
</html>
""".format(code=code)

它警告:

    """.format(code=code)
KeyError: '\n  border'

我正在考虑添加 html = html.readline.rstrip("\n") 但错误发生在此之前。

我怎样才能纠正它?谢谢你。

标签: pythonhtmlemailhtml-email

解决方案


那是因为您在那里有一个样式块,并且它正在使用{}.format()函数搜索和评估的样式块。
尝试通过将其导出到单独的文件来将其从 html 中删除。


推荐阅读