Как создать список <String>с Zeep? - PullRequest
0 голосов
/ 02 января 2019

Я использую библиотеку Python zeep для общения со службой SOAP.Один из обязательных аргументов в документации имеет тип List<String>, и в WSDL я нашел это:

<xs:element minOccurs="0" maxOccurs="1" name="IncludedLenders" type="tns:ArrayOfString"/>

И я считаю, что AraryOfString определяется как:

<xs:complexType name="ArrayOfString">
  <xs:sequence>
    <xs:element minOccurs="0" maxOccurs="unbounded" name="string" nillable="true" type="xs:string"/>
  </xs:sequence>
</xs:complexType>

Как мне заставить zeep генерировать значения для этого?Я пытался с:

"IncludedLenders": [
  "BMS",
  "BME"
]

, но это генерирует:

                <ns0:IncludedLenders>
                    <ns0:string>BMS</ns0:string>
                </ns0:IncludedLenders>

вместо:

                <ns0:IncludedLenders>
                    <ns0:string>BMS</ns0:string>
                    <ns0:string>BME</ns0:string>
                </ns0:IncludedLenders>

Есть идеи, как генерировать более поздние?

1 Ответ

0 голосов
/ 02 января 2019

Я разобрался. Сначала мне нужно было извлечь ArrayOfString тип:

array_of_string_type = client.get_type("ns1:ArrayOfString")

, а затем создайте его следующим образом:

"IncludedLenders": array_of_string_type(["BMS","BME"])
...