Python suds „RuntimeError: przekroczono maksymalną głębokość rekurencji podczas wywoływania obiektu Pythona”
Usiłuję użyć usługi sieciowej SOAP przy użyciu suds Pythona, ale otrzymuję błąd „RuntimeError: przekroczono maksymalną głębokość rekursji podczas wywoływania obiektu Pythona”.
Zgodnie ze śladem istnieje nieskończona rekurencja w „suds / binding / multiref.py”, wiersz 69.
Dostępna jest usługa internetowa, do której próbuję uzyskać dostęphttp://www.reactome.org:8080/caBIOWebApp/services/caBIOService?wsdl.
Metoda, do której próbuję uzyskać dostęp, to loadPathwayForId.
Oto część mojego kodu, która zużywa usługę internetową:
from suds.client import Client
client = Client('http://www.reactome.org:8080/caBIOWebApp/services/caBIOService?wsdl')
pathway = client.service.loadPathwayForId(2470946)
Nie jestem pewien, co jest odpowiedzialne za nieskończoną rekursję. Próbowałem znaleźć ten problem i pojawiły się doniesienia o problemach z mydlinami i nieskończoną rekurencją, ale ślady są inne niż moje (kod rekurencyjny jest inny), więc podejrzewam, że mój problem ma inne źródła.
Pełny ślad:
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
Z góry dziękuję za pomoc!