如何从Jenkins python获取参数化值

时间:2017-07-20 09:58:26

标签: python search jenkins collect

我使用python-jenkins。我需要从任何工作中收集参数化值。

我不明白,我怎么能这样做?! 我的部分脚本:

...
s = jenkins.Jenkins(server_url, user, pwd)
try:
    job_name = 'job_name'                  
    build_num = s.get_job_info(job_name)['lastBuild']['number']
    while build_num>0: 
        try: 
            build_info = s.get_build_info(job_name,build_num)
            build_info_actions = build_info['actions']
            print(build_info_actions)
...

我查看了一些信息

[{'parameters': [{'value': '12345', 'name': 'name1', '_class': 'hudson.model.StringParameterValue'}, {'value': 'value2', 'name': 'name2', '_class': 'hudson.model.StringParameterValue'}, {'value': 'http://some_URL', 'name': 'Url1', '_class': 'hudson.model.StringParameterValue'}, {'value': '', 'name': 'Url2', '_class': 'hudson.model.StringParameterValue'}], '_class': 'hudson.model.ParametersAction'}, {'_class':'hudson.model.CauseAction', 'causes': [{'note': None, '_class': 'hudson.model.Cause$RemoteCause', 'shortDescription': 'Started by  host NameHost', 'addr': 'some.address'}]}, {'_class': 'jenkins.metrics.impl.TimeInQueueAction'}, {}, {}, {}, {}, {}, {}, {}] 

我如何收集所有信息并保存到文件中:

name1 , 12345, name2, value2, Url1, http://some_URL ... 

BIG Thx为您提供帮助! 抱歉我的英文不好..

1 个答案:

答案 0 :(得分:0)

x = [{'parameters': [{'value': '12345', 'name': 'name1'}]}]

下面

x

是列表([])的字典,可能还包含带字典的列表。

e.g。访问value就像这样:

x[0]是列表中的第一个元素,因为这是一个字典,你得到它的键parameters就像

x[0]['parameters']

这也是一个词典列表,第一个元素是

x[0]['parameters'][0]

并且密钥value

x[0]['parameters'][0]['value']

然后只是连接字符串并写入文件。