我试图调用一个需要空(无)属性但suds会删除这些属性的服务。我要送。。

<ns1:Body>
  <ns0:QueryIntersection>
     <ns0:intersectingRoad>
        <ns2:RoadName xsi:nil="true"/>
        <ns2:RoadType xsi:nil="true"/>
     </ns0:intersectingRoad>
     <ns0:subjectRoad>
        <ns2:RoadName>BURKE</ns2:RoadName>
        <ns2:RoadType>ROAD</ns2:RoadType>
     </ns0:subjectRoad>
  </ns0:QueryIntersection>

但是suds删除了IntersectingRoad对象并且只发送
<ns1:Body>
  <ns0:QueryIntersection>
     <ns0:subjectRoad>
        <ns2:RoadName>BURKE</ns2:RoadName>
        <ns2:RoadType>ROAD</ns2:RoadType>
     </ns0:subjectRoad>
  </ns0:QueryIntersection>

如果我在IntersectingRoad对象中设置了其中一个值,它将发送该值并正常工作,但没有一个也是有效的请求。
这是我正在使用的代码的摘录。。。
Int1 = client.factory.create('ns2:IntersectingRoad')
Int1.RoadName = None
Int1.RoadType = None

Int2 = client.factory.create('ns2:SubjectRoad')
Int2.RoadName = "BURKE"
Int2.RoadType = "ROAD"

try:
    Ints = client.service.QueryIntersection(Int1,Int2, )
except Exception as e:
    print e.message

请帮忙!

最佳答案

Suds有一个特殊的null()函数用于传递可选参数,因为没有一个被视为缺少值。
我想你的案子会是这样的:

from suds import null

Int1 = client.factory.create('ns2:IntersectingRoad')
Int1.RoadName = null()
Int1.RoadType = null()

关于python - suds send None属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16768000/

10-12 22:13