Python suds中带有前导下划线的参数

时间:2012-08-07 16:29:18

标签: python suds

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

<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或suds),或者可能是通过基于私有变量约定来保护变量来尝试“智能”的suds。无论如何,这是使用此Web服务的文档化方式,因此我需要弄清楚如何获取suds以生成包括__encoded_query块的XML。

1 个答案:

答案 0 :(得分:1)

这不是你的错,它是documented suds issue