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