получить список значений вне цикла Python - PullRequest
0 голосов
/ 30 ноября 2018

Я хочу получить переменный вывод (который находится в цикле), вне цикла

        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 

печать (внутри цикла) дает то, что я хочу:

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

IЯ пытаюсь получить тот же вывод, но за пределами цикла.поэтому я объявил вывод списка и добавил переменную

, но вывод печати (вне цикла) дает одну строку

['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']

Ответы [ 2 ]

0 голосов
/ 30 ноября 2018

только что его нашел, нужно присоединить новую строку к списку

 body= "\n".join(output)
 print body
0 голосов
/ 30 ноября 2018

Обратите внимание, что вы используете output.append(a) - output - список.В общем, Python печатает списки, которые вы видите там: все в одну строку, в скобках и с кавычками вокруг строк.

Если вы хотите напечатать каждую из строк отдельно без кавычек, то вы должны напечатать каждый элемент списка индивидуально , вместо того, чтобы печатать весь список сразу.Вместо

print output

до

for line in output:
    print line
...