我正在分析suds客户机从Web服务SOAP API返回的对象
我有一个属性对象的列表,比如
(defectStateAttributeValueDataObj){
attributeDefinitionId =
(attributeDefinitionIdDataObj){
name = "Comment"
}
attributeValueId =
(attributeValueIdDataObj){
name = "Owner changed because of default owner assignment specified in the component map"
}
}
以及
^{pr2}$我使用以下循环提取键/值对:
for defect in myDefectsPage.mergedDefects :
print defect.cid,
for attribute in defect.defectStateAttributeValues:
print attribute
attr= attribute.attributeDefinitionId.name
val=attribute.attributeValueId.name
print attr,'=',val,
print ""
(以上对象是打印属性命令的结果)
对于每个属性,这将按预期工作,除了attribute.attributeDefinitionId.name==“注释”
对于那个我得到了
回溯(最近一次呼叫): 文件,第63行,英寸 瓦尔=attribute.attributeValueId.name AttributeError:“Text”对象没有属性“name”
这很奇怪,因为如果我用 瓦尔=attribute.attributeValueId属性#.名称 它会打印出来的
通信=(attributeValueIdDataObj){ name=“由于组件映射中指定的默认所有者分配而更改所有者” }在
所以它看起来像是一个attributeValueIdDataObj,并且有一个name属性。在
我使用了suds调试日志和XML return元素看起来完全相同,不管attribute.attributeDefinitionId。名字是。在
我不知道当试图访问name属性时它是如何变成一个“Text”对象的
有什么想法吗?在
进一步检查(并在发生异常时打印出返回对象的类型),这是web服务SOAP服务器中的一个bug。在
当注释为空时,它返回一个
标签
而不是
^{pr2}$对象。所以结果萨克斯文本对象而不是suds.attributeValueIdDataObj对象
所以没有Python或肥皂水之谜。在
抱歉误报了。。。在
相关问题 更多 >
编程相关推荐