Wie verwende ich einen komplexen Typ aus einer WSDL mit zeep in Python?

Ich habe eine WSDL, die einen komplexen Typ wie folgt enthält:

<xsd:complexType name="string_array">
  <xsd:complexContent>
    <xsd:restriction base="SOAP-ENC:Array">
      <xsd:attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="xsd:string[]"/>
    </xsd:restriction>
  </xsd:complexContent>
</xsd:complexType>

Ich habe mich für @ entschied zeep für den Soap-Client und möchten diesen Typ als Parameter für eine der anderen Methoden verwenden, auf die in der WSDL verwiesen wird. Ich kann nicht scheinen, herauszufinden, wie man diesen Typ benutzt. Als ich durch das @ geschaut haDokumentatio zur Verwendung bestimmter Datenstrukturen, auf die in der WSDL verwiesen wird, wird die Verwendung desclient.get_type() -Methode, also habe ich Folgendes getan:

wsdl = "https://wsdl.location.com/?wsdl"
client = Client(wsdl=wsdl)
string_array = client.get_type('tns:string_array')
string_array('some value')
client.service.method(string_array)

Dies gibt einen FehlerTypeError: argument of type 'string_array' is not iterable. Ich habe auch viele Variationen davon ausprobiert und auch versucht, ein Wörterbuch wie das folgende zu verwenden:

client.service.method(param_name=['some value']) 

Welche gibt den Fehler

ValueError: Error while create XML for complexType '{https://wsdl.location.com/?wsdl}string_array': Expected instance of type <class 'zeep.objects.string_array'>, received <class 'str'> instead.`

Wenn jemand weiß, wie man den obigen Typ aus der WSDL mit zeep verwendet, wäre ich dankbar. Vielen Dank

Antworten auf die Frage(2)

Ihre Antwort auf die Frage