Python脚本获取JIRA多组件值仅输出首个,求解决方法
解决JIRA组件名称无法全部打印的问题
你的问题核心出在多余的内层循环上,咱们拆解下问题根源和修正方案:
首先看你拿到的components数据结构——这是一个包含多个字典的列表,每个字典里的name字段就是单个组件的名称。但你原来的代码里,在外层遍历组件对象之后,又加了一层for val in version["name"]的循环:这层循环是在遍历组件名称字符串的每一个字符,完全没必要,还会导致同一个组件名称被重复打印(次数等于名称的字符数),甚至可能干扰后续组件的遍历逻辑。
修正后的基础代码
直接遍历components列表,逐个取出每个组件的name字段打印即可:
for component in issue["fields"]["components"]: print(component["name"])
运行这段代码后,就能得到所有组件的名称输出:
A Cx M Px R test 4.5 R test 4.6
可选:将组件名称合并为字符串输出
如果想把所有组件名称用逗号(或其他分隔符)拼接成一行输出,可以用列表推导式+字符串拼接的方式:
component_names = [comp["name"] for comp in issue["fields"]["components"]] print(", ".join(component_names))
输出结果会是:A Cx, M Px, R test 4.5, R test 4.6
补充说明
你提到原来的代码仅输出"A Cx",大概率是内层的字符遍历循环打乱了逻辑(比如重复输出的内容掩盖了后续组件,或者测试时意外终止了循环),去掉那层多余的循环后,就能正常遍历所有组件对象并打印名称了。
内容的提问来源于stack exchange,提问作者unknown
相关产品推荐
相关产品推荐

