如何删除 suds-py3 请求中的引号



我正在使用suds-py3向具有复杂参数的服务发出请求,这些参数需要数字和文本。这是我正在尝试的代码:

from suds.client import Client
url = <service_url>
parameter = <service_method_parameter>
method = <service_method>
client = Client(url)
parameter_object = client.factory.create(str(parameter))

到目前为止,我已经创建了一个服务要求的值的字典,如下所示:

parameter_object = {
'codigoAmbiente': '',
'codigoModalidad': '',
'codigoPuntoVenta': '',
'codigoSistema': '',
'codigoSucursal': '',
'cuis': '',
'nit': ''
}

因此,为了提出请求,我创建了另一个具有所需值的字典:

request_dictionary = {
'codigoAmbiente': 2,
'codigoModalidad': 2,
'codigoPuntoVenta': 0,
'codigoSistema': 'AA5BB4CC3',
'codigoSucursal': 0,
'cuis': 'A1B2C3',
'nit': 12343456
}

然后,我使用以下代码将值发送到服务。

for var, value in request_dictionary.items():
parameter_object[str(var)] = value
request_response = getattr(client.service, method)()
print(request_response)

问题是服务会因为引号而发回错误,它无法识别它们。如果我尝试发送如下所示的字典:

request_dictionary = {
'codigoAmbiente': 2,
'codigoModalidad': 2,
'codigoPuntoVenta': 0,
'codigoSistema': AA5BB4CC3,
'codigoSucursal': 0,
'cuis': A1B2C3,
'nit': 12343456
}

Python 抛出错误"NameError:未定义AA5BB4CC3"。 我的代码应该是什么样子,以便对服务的请求符合预期?

我的代码中犯了一个错误。这不是引号。正确的代码如下:

from suds.client import Client
url = <service_url>
parameter = <service_method_parameter>
method = <service_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 = getattr(client.service, method)(parameter_object)
print(request_response)

正如你所注意到的,错误出在这一行:

request_response = getattr(client.service, method)(parameter_object)

其中缺少包含请求值的"parameter_object"二分法。

最新更新