SOAP调用响应仅获得最后结果-Python

时间:2020-08-28 00:31:17

标签: python api soap pycharm

这是我第一次发布。因此,如果事情不正常,请事先道歉。因此,基于以下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")

1 个答案:

答案 0 :(得分:0)

您在代码中使用了自定义服务方法,因此我不知道您要接收什么数据。

我注意到的一个问题是,您在属性循环中不断覆盖相同的变量(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(item.regionIdentity.regionID), GetStringValue(property.description), GetStringValue(property.scenario))