gpt4 book ai didi

python - lxml的E-factory是否支持动态生成数据?

转载 作者:太空狗 更新时间:2023-10-30 02:59:39 24 4
gpt4 key购买 nike

有没有办法用 lxml 的 E-factory 动态创建标签?例如,我收到以下代码的语法错误:

E.BODY(
E.TABLE(
for row_num in range(len(ws.rows)):
row = ws.rows[row_num]

# create a tr tag
E.TR(
for cell_num in range(len(row)):
cell = row[cell_num]

我收到以下错误:

   for row_num in range(len(ws.rows)):
^
SyntaxError: invalid syntax

最佳答案

为了创建多个子节点,传递multiple positional or keyword arguments .

工作示例:

from lxml.builder import ElementMaker
from lxml.html import tostring

E = ElementMaker()

body = E.BODY(
E.TABLE(
*[E.TR(
*[
E.TD("%s %s" % (row_num, col_num)) for col_num in range(3)
]
) for row_num in range(2)]
)
)

print tostring(body, pretty_print=True)

打印:

<BODY><TABLE>
<TR>
<TD>0 0</TD>
<TD>0 1</TD>
<TD>0 2</TD>
</TR>
<TR>
<TD>1 0</TD>
<TD>1 1</TD>
<TD>1 2</TD>
</TR>
</TABLE></BODY>

作为旁注,据我了解,您想要创建一个 HTML 文件,其中填充来自已解析 excel 文件的数据。与其使用 lxml 创建元素,不如使用像 jinja2 这样的模板引擎更好更容易地解决它。或 mako .

关于python - lxml的E-factory是否支持动态生成数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31143716/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com