目前在Python 2.7中使用了Suds。打开尝试不同的客户端。
我正在连接到一个SOAP服务,该服务返回不同的文档,其中只有某些字段可用,具体取决于文档。反思服务并没有帮助,因为我只获得了所有可用字段的列表,而不是逐个文档返回的字段。这导致我一些特别讨厌的错误处理,目前看起来像:
try:
client.service.Something
except AttributeError:
pass
else:
doSomethingWith(client.service.Something)
对于WSDL架构中的每个可能字段。
或者,解析响应以生成可用字段列表没有多大帮助,因为那样我最终会得到一个很长的列表
if client.service.Something is not None:
doSomethingWith(client.service.Something)
我想我可以解析文档并构建可用字段列表,然后执行以下操作:
for field in listOfFields:
doSomethingWith(field)
但是我根据字段的内容对字段的内容做了不同的事情,所以这没什么用。
有没有简单/优雅的解决方案?我不可能是遇到这个的唯一一个。