首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安装的lxml在使用其他函数时会导致TypeError

安装的lxml在使用其他函数时会导致TypeError
EN

Stack Overflow用户
提问于 2018-12-22 01:36:50
回答 1查看 90关注 0票数 0

所以我有了这段代码,它(没有安装lxml )可以按预期工作

代码语言:javascript
复制
from xml.etree.ElementTree import Element, tostring
from xmljson import badgerfish as bf

dic = {'p': {'@id': 'main'}}

output = bf.etree(dic, root=Element('root'))
print(tostring(output).decode('utf-8'))

输出为

代码语言:javascript
复制
<root><p id="main" /></root>

问题是我需要lxml来完成另一个任务,但是如果我安装它(通过pip install lxml),上面的代码会产生这个错误

代码语言:javascript
复制
TypeError: append() argument must be xml.etree.ElementTree.Element, not lxml.etree._Element 

那么,如何将上述代码与lxml一起使用呢?

完整堆栈跟踪:

代码语言:javascript
复制
TypeError                                 Traceback (most recent call last)
<ipython-input-1-7478b75b9581> in <module>
      4 dic = {'p': {'@id': 'main'}}
      5 
----> 6 output = bf.etree(dic, root=Element('root'))
      7 print(tostring(output).decode('utf-8'))

~/.local/lib/python3.7/site-packages/xmljson/__init__.py in etree(self, data, root)
    132                     if elem is None:
    133                         continue
--> 134                     result.append(elem)
    135                     # Treat scalars as text content, not children (Parker)
    136                     if not isinstance(value, (self.dict, dict, self.list, list)):

TypeError: append() argument must be xml.etree.ElementTree.Element, not lxml.etree._Element
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-22 16:54:09

正如@jordanm所建议的,我必须将lxml元素传递给bf.etree()而不是xml.etree元素,因此工作代码是

代码语言:javascript
复制
from lxml.etree import Element as EElement
from xml.etree.ElementTree import Element, tostring
from xmljson import badgerfish as bf

dic = {'p': {'@id': 'main'}}

output = bf.etree(dic, root=EElement('root'))
print(tostring(output).decode('utf-8'))

这会产生正确的输出

代码语言:javascript
复制
<root><p id="main" /></root>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53888803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档