我正在使用zeep通过Python中的WSDL与SOAP Web服务进行交互。
我想调用以下webservice方法:
AddStuff(someCheck: xsd:boolean, keyColumn: xsd:string, overwrite: xsd:boolean, attributes: ns0:Map)
xsd类型“ ns0:Map”如下:
ns0:Map(item: ns0:MapItem[])
ns0:MapItem(key: None, value: None)
以下是示例XML:
<soapenv:Body>
<sch:AddStuffRequest>
<!--You may enter the following 4 items in any order-->
<sch:someCheck>true</sch:someCheck>
<sch:keyColumn>email</sch:keyColumn>
<sch:overwrite>true</sch:overwrite>
<sch:attributes>
<!--Zero or more repetitions:-->
<sch:item>
<!--You may enter the following 2 items in any order-->
<sch:key>email</sch:key>
<sch:value>sample@sample.com</sch:value>
</sch:item>
<sch:item>
<!--You may enter the following 2 items in any order-->
<sch:key>gender</sch:key>
<sch:value>0</sch:value>
</sch:item>
<sch:item>
<!--You may enter the following 2 items in any order-->
<sch:key>sometype</sch:key>
<sch:value>0</sch:value>
</sch:item>
<sch:item>
<!--You may enter the following 2 items in any order-->
<sch:key>someName</sch:key>
<sch:value>Peter</sch:value>
</sch:item>
</sch:attributes>
</sch:AddSubscriberRequest>
</soapenv:Body>
这是我要使用zeep构建的XML,但是我在使用attributes参数时遇到困难。
我的问题:如何将电子邮件,性别等值的Python字典传递给Web服务的attributes参数?由于涉及那些“项目”标签的结构,我无法使用:
client.create_message(
client.service, 'AddStuff', someCheck='true', keyColumn='email', overwrite='true', attributes={
"email":"someemail@d.com",
"gender":0,
...})
由于缺少SOAP正文中的“ item:”部分。
感谢您的帮助!