0
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 中?更好的方法 ?

4

2 回答 2

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>
于 2013-09-08T18:48:48.180 回答
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。

于 2013-09-08T18:52:30.070 回答