我有下一个wdsl:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:siat="https://siat.impuestos.gob.bo/">
<soapenv:Header/>
<soapenv:Body>
<siat:solicitudCufdMasivo>
<SolicitudMasivo>
<codigoambiente>?</codigoambiente>
<codigoModalidad>?</codigoModalidad>
<codigoSistema>?</codigoSistema>
<!--1 or more repetitions:-->
<datosSolicitud>
<!--Optional:-->
<codigoPuntoVenta>?</codigoPuntoVenta>
<codigoSucursal>?</codigoSucursal>
<cuis>?</cuis>
</datosSolicitud>
<nit>?</nit>
</SolicitudMasivo>
</siat:solicitudCufdMasivo>
</soapenv:Body>
</soapenv:Envelope>
我了解的是,这部分我可以像下面这样反复发送:
<datosSolicitud>
<codigoPuntoVenta>1</codigoPuntoVenta>
<codigoSucursal>1</codigoSucursal>
<cuis>1</cuis>
</datosSolicitud>
<datosSolicitud>
<codigoPuntoVenta>2</codigoPuntoVenta>
<codigoSucursal>2</codigoSucursal>
<cuis>2</cuis>
</datosSolicitud>
我过去经常使用带有for循环的字典,例如下一个代码:
# -*- coding: utf-8 -*-
from zeep import Client,Settings
settings = Settings(strict=False,xml_huge_tree=True)
url = <service_url>
client = Client(url,settings=settings)
submit_dictionary = {}
for keys,values in <an_iterable>.items():
submit_dictionary[keys] = values
response = client.service.<some_method>(submit_dictionary)
如果在请求中发送一次“ datosSolicitud”块,则此代码将正常工作。但是我认为,如果必须多次使用不同的值发送该块,则for循环将无法工作,因为它将仅替换第一个块的值。 如果有人能以简单的方式解释我将如何发送这样的请求,我将不胜感激。