html_body = """\
<html>
<head>
</head>
<body>
<br>
<table border="1">
%s
</table>
</body>
</html>
""" % (html_content)
html_contents = [<tr><td>Name</td><td>id</td></tr> , <tr><td>Smith</td><td>1001</td></tr>]
我正在尝试从列表中获取html主体,以便可以通过电子邮件发送它。我怎样才能将html_content列表的所有元素放在上面的html_body中?更好的方式?
答案 0 :(得分:1)
您可以使用join()
加入列表中的字符串:
>>> html_contents = ['<tr><td>Name</td><td>id</td></tr>' , '<tr><td>Smith</td><td>1001</td></tr>']
>>> html_body = """\
... <html>
... <head>
... </head>
... <body>
... <br>
... <table border="1">
... %s
... </table>
... </body>
... </html>
... """ % ("".join(html_contents))
>>> print html_body
<html>
<head>
</head>
<body>
<br>
<table border="1">
<tr><td>Name</td><td>id</td></tr><tr><td>Smith</td><td>1001</td></tr>
</table>
</body>
</html>
答案 1 :(得分:0)
使用lxml,您可以像这样构建HTML:
import lxml.html as LH
import lxml.builder as builder
E = builder.E
page = (
E.html( # create an Element called "html"
E.head(),
E.body(
E.br(),
E.table(
E.tr(
E.td("Name"),
E.td("id")
),
E.tr(
E.td("Smith"),
E.td("1001")
),
border="1")
)
)
)
print(LH.tostring(page, pretty_print=True))
产量
<html>
<head></head>
<body>
<br><table border="1">
<tr>
<td>Name</td>
<td>id</td>
</tr>
<tr>
<td>Smith</td>
<td>1001</td>
</tr>
</table>
</body>
</html>
这使得HTML的结构变得明显,并且您更有可能最终获得有效的HTML。