我正在尝试使用 Python suds 使用 SOAP Web 服务,但出现错误“RuntimeError:调用 Python 对象时超出最大递归深度”。
根据跟踪,“suds/binding/multiref.py”第 69 行存在无限递归。
我试图访问的网络服务是http://www.reactome.org:8080/caBIOWebApp/services/caBIOService?wsdl。
我试图访问的方法是 loadPathwayForId。
这是我使用 Web 服务的代码部分:
from suds.client import Client
client = Client('http://www.reactome.org:8080/caBIOWebApp/services/caBIOService?wsdl')
pathway = client.service.loadPathwayForId(2470946)
我不确定是什么导致了无限递归。我试图查找这个问题,并且有关于 suds 和无限递归问题的报告,但是跟踪与我的不同(递归代码不同),所以我怀疑我的问题有其他根源。
完整的跟踪:
File "C:\Python27\lib\suds\bindings\multiref.py", line 69, in update
self.update(c)
File "C:\Python27\lib\suds\bindings\multiref.py", line 69, in update
self.update(c)
...
File "C:\Python27\lib\suds\bindings\multiref.py", line 69, in update
self.update(c)
File "C:\Python27\lib\suds\bindings\multiref.py", line 69, in update
self.update(c)
File "C:\Python27\lib\suds\bindings\multiref.py", line 67, in update
self.replace_references(node)
File "C:\Python27\lib\suds\bindings\multiref.py", line 80, in replace_references
href = node.getAttribute('href')
File "C:\Python27\lib\suds\sax\element.py", line 404, in getAttribute
prefix, name = splitPrefix(name)
File "C:\Python27\lib\suds\sax\__init__.py", line 49, in splitPrefix
if isinstance(name, basestring) \
RuntimeError: maximum recursion depth exceeded while calling a Python object
在此先感谢您的帮助!