Как получить вывод Python и получить динамический массив
У меня есть Дженкинс и Питон, и некоторые работы в очереди. У меня есть сценарий, который
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'и получить его для динамического массива в python
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 вам просто нужно вызвать функцию run:
for n in queue_info:
run(n['task']['name'])