有没有办法将变量client.service.methods与suds-py3一起使用?



我正在尝试创建一个方法,以使用来自 suds-py3 的 suds.client 与下一个形式:

from suds.client import Client
def soap_request(url, parameter, request_dictionary, method)
client = Client(url)
parameter_object = client.factory.create(str(parameter))
for var, value in request_dictionary.items():
parameter_object[str(var)] = value
request_response = client.service.method(parameter_object)
return = request_response

当我使用:

client.service.<methods_name>(parameter_object)

我得到的回复正确。但是当我使用前面的代码时,我收到此错误消息:"泡沫。方法未找到:未找到方法">

由于这个答案,我设法做到了这一点 https://stackoverflow.com/a/1855575/12059030 因此,结果代码将是:

from suds.client import Client
def soap_request(url, parameter, request_dictionary, method):
client = Client(url)
parameter_object = client.factory.create(str(parameter))
for var, val in request_dictionary.items():
parameter_object[str(var)] = val
request_response = getattr(client.service, method)()
return request_response

如果有人有更好的解决方案,非常受欢迎

前面的代码中缺少一个变量,因此完整的代码如下:

from suds.client import Client
def soap_request(url, parameter, request_dictionary, method):
client = Client(url)
parameter_object = client.factory.create(str(parameter))
for var, val in request_dictionary.items():
parameter_object[str(var)] = val
request_response = getattr(client.service, method)(parameter_object)
return request_response

如您所见,"request_response"中缺少"parameter_object"。

最新更新