如何在Jenkins中将Python列表转换为Groovy列表?
解决Jenkins中Groovy转换Python返回的字符串列表问题
方法1:通过JSON解析转换(适配现有Python输出)
如果无法修改Python脚本的输出格式,可将Python返回的单引号格式字符串转为标准JSON格式后解析:
import groovy.json.JsonSlurper // 获取Python脚本输出的字符串形式列表 def pythonOutputStr = task.text // 将单引号替换为双引号,转换为合法JSON格式 def validJsonStr = pythonOutputStr.replaceAll("'", "\"") // 解析为Groovy列表 def groovyList = new JsonSlurper().parseText(validJsonStr)
方法2:正则表达式提取元素
针对格式固定的字符串列表,用正则直接提取所有被单引号包裹的元素:
def pythonOutputStr = task.text // 匹配所有单引号内的内容并收集为列表 def groovyList = (pythonOutputStr =~ /'([^']+)'/).collect { match -> match[1] }
方法3:修改Python脚本输出标准JSON(推荐)
从源头规范输出格式,让Python直接输出JSON字符串,避免格式转换的潜在问题:
Python脚本修改:
import json # 将列表转为标准JSON字符串输出 print(json.dumps(['1', '2', '3', 'latest']))
Groovy解析代码:
import groovy.json.JsonSlurper // 直接解析标准JSON字符串为Groovy列表 def groovyList = new JsonSlurper().parseText(task.text)
转换完成后,groovyList就是标准的Groovy列表,生成HTML select标签时即可正常遍历每个元素创建option。
内容的提问来源于stack exchange,提问作者DonnyFlaw
相关产品推荐
相关产品推荐

