Как убрать кавычки в запросах suds-py3 - PullRequest
0 голосов
/ 25 сентября 2019

Я использую 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 не определено».Как должен выглядеть мой код, чтобы запрос к службе был таким, как задумано?

1 Ответ

0 голосов
/ 25 сентября 2019

Я допустил ошибку в своем коде.Это были не цитаты.Правильный код выглядит следующим образом:

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", содержащий значения запроса, былотсутствует.

...