2014-04-15 2 views
0

나는 젠킨스와 파이썬을 가지고 있고 큐에 몇 가지 작업이있다. 나는이 명령은 나에게 다음과 같은 출력 줄 whic어떻게 파이썬 출력을 가져 와서 동적 인 대용을 얻는가

import jenkins 
j = jenkins.Jenkins('http:///', '....', '.......') 
queue_info = j.get_queue_info() 
print(queue_info) 

스크립트를 가지고있다 :

[{u'task': {u'url': u'http://', u'color': u'aborted', u'name': u'f1111111111'}, u'stuck': False, u'url': 
u'queue/item/37/', u'inQueueSince': 1397554800875L, u'actions': [{u'causes': [{u'userName': u'admin', u'userId': u'admin', u'shortDescription': 
u'Started by user admin'}]}], u'why': u'Waiting for next available executor on NO_1', u'buildable': True, u'params': u'', u'buildableStartMilliseconds': 1397554800878L, u'id': 37, u'pending': False, u'blocked': False} 

어떻게 'u'name의 이름을 가져오고 파이썬에서 동적 대규모로 얻을 수를

답변

1

출력은 사전 목록이므로 목록의 첫 번째 항목에 액세스하고 사전의 키를 사용하면됩니다. 여기에 함수를 정의하여

하자의 시작 :

import subprocess as sp 

''' Runs a program ''' 
def run(prog): 
     print("Lets run program %s" % prog) 
     sp.Popen([prog], stdout=sp.STDOUT, stderr=sp.STDOUT) 

     # This makes the script wait until the end of the program 
     sp.wait() 

다음, for 루프, 당신은 단지 실행 함수를 호출 할 필요가로 :

for n in queue_info: 
     run(n['task']['name']) 
+0

내가 필요하기 때문에이 이름을 사용해야합니다 이 대기열에 가상 머신을 실행하려면 job_name1 = 1, job_name2 = 2, 1,2,3 등의 머신을 실행하는 것이 좋습니다. –

+0

그리고 param을 어떻게 출력 할 수 있습니까? 내가이 일을 많이한다면 이거 [0]을 의미합니까? –

+0

단순히 for 루프를 사용하여 배열을 반복 할 수 있습니다. 그냥 내 대답을 편집, 그것을 확인하십시오. –

관련 문제