write() argument must be str, not lxml.etree._Element
时间: 2024-05-04 09:19:00 浏览: 190
解决Python中报错TypeError: must be str, not bytes问题
3星 · 编辑精心推荐
这个错误通常发生在尝试将 lxml.etree._Element 类型的对象传递给 write() 函数时。write() 函数期望的参数是字符串类型,因此需要将 lxml.etree._Element 类型的对象转换为字符串类型。
你可以使用 lxml.etree.tostring() 函数将 lxml.etree._Element 类型的对象转换为字符串类型,然后传递给 write() 函数。例如:
```
from lxml import etree
root = etree.Element("root")
child = etree.SubElement(root, "child")
child.text = "Hello, World!"
with open("file.xml", "w") as f:
f.write(etree.tostring(root, pretty_print=True).decode())
```
在这个例子中,我们创建了一个 XML 文档,并将其写入名为 "file.xml" 的文件中。我们使用了 lxml.etree.tostring() 函数将 lxml.etree._Element 类型的对象转换为字符串类型,并使用 decode() 函数将字节串转换为字符串。然后我们将字符串写入文件。
阅读全文