2012-08-07 40 views
2

我正在使用一个SOAP服务,它有一个用前导下划线定义的变量(一个会假设是私有的,但文档中有一个必须使用它们的具体示例)。在WSDL它看起来像这样:在Python中使用前导下划线的参数

<xsd:element maxOccurs="1" minOccurs="0" name="__encoded_query" type="xsd:string"/> 

通过一些实验我已经确定的是,在我的client.service电话使用命名参数我可以给变量赋值为正常,除了那些具有前导下划线。

例如:

client.service.getRecords(name='server1') 

产生正确的XML:

<ns1:getRecords> 
    <name>server1</name> 
</ns1:getRecords> 

但如果我尝试使用以下划线的参数:其产生

client.service.getRecords(__encoded_query='name=server1') 

的XML根本不包含参数:

<ns1:getRecords/> 

我不确定这是否是我不熟悉的语法细微差别(不管是Python还是泡沫),还是通过保护基于私有变量约定的变量来尝试“智能”。无论如何,这是使用此Web服务的文档化方式,因此我需要弄清楚如何使用泡沫来生成包括__encoded_query块的XML。

回答

相关问题