我正在使用suds,并实现接收和发送附件(我已经完成了),我需要在“低”级suds对象的某个地方工作。其中一个用于生成SOAP XML的对象具有此结构(伪代码):
struct object
[
[string] name
[list of objects] children
]
当我收到这个对象时,我必须检查:
然后使用该子树。如何采用这个子树(并检查它是否存在)pythonic风格? 当我测试它时,我用这种方式:
attachments_tree = soap_xml.children[0].children[1].children[0].children[0].children[1].children[21]
但我想要的是:
attachments_tree = soap_xml["document"]["Envelope"]["Body"]["UpdateRequest"]["model"]["instance"]["attachments"]
我确定转换为字典是个坏主意。 尝试像这里一步一步调用子树:
Envelopes = [child for child in soap_xml.children if child.name == 'Envelope']
Body = [child for child in Envelopes[0].children if child.name == 'Body']
看起来也很糟糕,即使这样也行不通。是否有良好的pythonic解决方案?