如何解决SOAP调用响应仅获得最后结果-Python
这是我第一次发布。因此,如果事情不正常,请事先道歉。因此,基于以下python脚本,我试图调用SOAP API并记录响应。然后遍历该响应,以第一个响应中的数据调用另一个方法。但是print(data)仅显示最后一行,而不显示完整的结果集。我是Python的新手。
def lambda_handler(): #event,context--------------------
zsession = Session()
zsession.verify = False
url = 'TheURL'
local_file_name="test.wsdl"
transport = Transport(session=zsession)
transport.load_timeout=2000
client = Client(local_file_name,transport=transport)
service = client.create_service(
'{http://www.someurl.com',url)
response = service.RetrieveRegionsByCriteria('*')
content = ''
for item in response:
properties = service.RetrievePlanningSessionPropertiesByCriteria(criteria=item.regionIdentity.regionID)#item.regionIdentity.regionID))
for property in properties:
row_str ='{0}|{1}|{2}|{3}'.format(property.sessionIdentity.internalSessionID,GetStringValue(item.regionIdentity.regionID),GetStringValue(property.description),GetStringValue(property.scenario))
data = ''
data = data + row_str + "\n"
print(data)
print("Function completed successfully")
解决方法
您在代码中使用了自定义服务方法,因此我不知道您要接收什么数据。
我注意到的一个问题是,您在属性循环中不断覆盖相同的变量(row_str
)。
更改此行:
for property in properties:
row_str ='{0}|{1}|{2}|{3}'.format(property.sessionIdentity.internalSessionID,GetStringValue(item.regionIdentity.regionID),GetStringValue(property.description),GetStringValue(property.scenario))
对此:
row_str = ''
for property in properties:
row_str +='{0}|{1}|{2}|{3}\n'.format(property.sessionIdentity.internalSessionID,GetStringValue(property.scenario))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。