在Python suds SOAP客户端中忽略未知属性

1 投票
1 回答
779 浏览
提问于 2025-04-18 01:47

我该如何设置Python的suds客户端,让它在SOAP响应中忽略那些在WSDL里没有的未知属性呢?

举个例子,如果输入的WSDL包含一个这样的对象:

  <complexType name="VolCreateAttr">
   <sequence>
     <element name="name" type="xsd:string" minOccurs="1" maxOccurs="1"/>
     <element name="description" type="xsd:string" minOccurs="1" maxOccurs="1"/>
     <element name="size" type="xsd:unsignedLong" minOccurs="1" maxOccurs="1"/>
   </sequence>
  </complexType>

然后我调用SOAP接口getVolInfo,返回的是上面那种类型的对象。但是响应中除了WSDL里提到的三个属性外,还有一个额外的属性叫“reserve”。目前,suds会报一个找不到类型的错误。我该如何配置suds,让它忽略响应中的未知属性呢?

1 个回答

0

我觉得这里基本上有两个选择,一个是调整WSDL文件,让它和实际返回的值匹配,另一个是直接从输出中去掉多余的元素:

另外,你也可以使用其他的SOAP库,这些库可以从WSDL生成代码,然后手动调整这些代码。

撰写回答