首页 > 解决方案 > 获取循环Python之外的值列表

问题描述

我想在循环外获得变量输出 a (在循环中)

        stopped_reasons = []
        output=[]




         client = boto3.client('ec2')
         reservations = client.describe_instances().get('Reservations', []) 

         for reservation in reservations:
             for instance in reservation['Instances']:
               tags = {}
               for tag in instance['Tags']:

                    tags[tag['Key']] = tag['Value']
                    if tag['Key'] == 'Name':
                      name=tag['Value']     
             if instance['State']['Name'] == 'stopped':

                 instance_ids.append(instance['InstanceId'])
                 instance_names.append(name)
                 stopped_reason = instance['StateTransitionReason']
                 stopped_reasons.append(stopped_reason)
                 transition_timestamp = datetime.strptime(instance['StateTransitionReason'][16:39], '%Y-%m-%d %H:%M:%S %Z')
                 #print (datetime.now() - transition_timestamp).days
                 a="Instance:"+ instance['InstanceId']  + '  Name: ' +name + "TIME: "+str(transition_timestamp)
                 print a
                 output.append(a)

print output 

print a (inside loop) 给出了我想要的:

Instance:i-03666a1aea6028cf0  Name: aws-opsworks-cm-instance-mypuppet-1541455366196TIME: 2018-11-15 18:30:27
Instance:i-0a67100fa09eab573  Name: Choco_ServerTIME: 2018-11-29 18:30:27

我试图获得相同的输出,但在 for 循环之外。所以我声明了列表输出并附加了一个变量

但打印输出(外部循环)给出一行

['Instance:i-03666a1aea6028cf0  Name: aws-opsworks-cm-instance-mypuppet-1541455366196 TIME: 2018-11-15 18:30:27', 'Instance:i-0a67100fa09eab573  Name: Choco_Server TIME: 2018-11-29 18:30:27']

标签: pythonlistnewline

解决方案


刚刚找到它,必须将新行加入列表

 body= "\n".join(output)
 print body

推荐阅读