Создать массив SOAP-запроса с помощью Zeep в Python - PullRequest
0 голосов
/ 30 мая 2019

Я пытаюсь отправить запросы, передающие несколько идентификаторов, используя библиотеку zeep. Я попытался опубликовать решение здесь , но не смог заставить его работать.

Я могу заставить его работать нормально, если перебрать отдельные поисковые запросы, отформатированные в виде словаря:

option = {'stationID': '1:123456' }
data = client.service.getStationStatus(option)

Однако API также поддерживает список таких индексов (stationIDs), заданный в виде массива. Мой вопрос заключается в том, как создать этот массив, когда идентификаторы все одинаковы. Я перепробовал много вариантов вложенных списков словарей и словарей списков. Я также попробовал подход с использованием client.get_type() и добавление этих параметров. Опять же, это работает для отдельных идентификаторов, но я не могу получить массив, чтобы пойти. Возвращает только первое значение.

Желаемое SOAP, согласно задокументированному примеру:

<stationIDs>
     <stationID>1:41613</stationID>
     <stationID>1:39183</stationID>
     <stationID>2:59173</stationID>
     <stationID>4:39143</stationID>
 </stationIDs>

Одна из моих попыток:

options = {'stationIDs' :
            [{'stationID': '1:812581' }, 
             {'stationID': '1:1762561'}, 
             {'stationID': '1:114123' }, 
             {'stationID': '1:1762571'} ] 
             } 

Кто-нибудь может указать, какой из возможных форматов является правильным?

...