【发布时间】:2021-04-14 23:57:14
【问题描述】:
假设,我需要使用lxml-library将以下XML读入python对象:
<detaileddescription>
<para>
<parameterlist kind="param">
<parameteritem>
<parameternamelist>
<parametername>parameters</parametername>
</parameternamelist>
<parameterdescription>
<para>- parameters of the distribution</para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
</detaileddescription>
所以,我创建了以下类:
ParaTag.py
from ParameterListTag import ParameterListTag
class ParaTag:
parameterListTag: ParameterListTag
text: str
def __init__(self):
self.parameterListTag = None
self.text = None
ParameterDescriptionTag.py
from ParaTag import ParaTag
class ParameterDescriptionTag:
text: str
paraTag: ParaTag
def __init__(self):
self.text = None
self.paraTag = None
ParameterListTag.py
from ParameterDescriptionTag import ParameterDescriptionTag
class ParameterListTag:
parameterDescTag: ParameterDescriptionTag
text: str
def __init__(self):
self.parameterDescTag = None
self.text = None
我的目标是通过 lxml 库读取 XML,然后将读取的标签映射到相应的类中。
以下是驱动程序:
MainClass.py
from ParaTag import ParaTag
class MainClass:
@classmethod
def main(cls):
para_obj = ParaTag()
print(para_obj)
if __name__ == '__main__':
MainClass.main()
但是,这不会执行:
输出
C:\Users\pc\AppData\Local\Microsoft\WindowsApps\python3.7.exe C:/Users/pc/source/repos/OOP_in_python/MainClass.py
Traceback (most recent call last):
File "C:/Users/pc/source/repos/OOP_in_python/MainClass.py", line 1, in <module>
from ParaTag import ParaTag
File "C:\Users\pc\source\repos\OOP_in_python\ParaTag.py", line 1, in <module>
from ParameterListTag import ParameterListTag
File "C:\Users\pc\source\repos\OOP_in_python\ParameterListTag.py", line 1, in <module>
from ParameterDescriptionTag import ParameterDescriptionTag
File "C:\Users\pc\source\repos\OOP_in_python\ParameterDescriptionTag.py", line 1, in <module>
from ParaTag import ParaTag
ImportError: cannot import name 'ParaTag' from 'ParaTag' (C:\Users\pc\source\repos\OOP_in_python\ParaTag.py)
Process finished with exit code 1
那么,我该如何解决这个问题?
【问题讨论】:
标签: python xml deserialization