You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python字符串拼接实现Jira自动化JQL查询问题求助

Jira自动化JQL查询构建问题解决

我在用Python开发Jira自动化程序,需要集成JQL搜索功能,构建两类JQL查询:查询“已关闭工单”和“已创建工单”。但当前代码运行后生成的列表内部包含元组,无法得到预期的查询语句列表。

原代码

#Day 0 - current day , Day '-1'  - Yesterday 
jql_day = ['','-1','-2','-3']
jql_list_one_str = []
jql_list_two_str = []

action = ['resolved','created']

for i in jql_day:    
   jql_str = 'project = MRCHNT AND '+ action[0]+' >= startOfDay(' + i + ')', 'project = MRCHNT AND '+ action[1]+' >= startOfDay(' + i + ')'
   jql_list_one_str.append(jql_str)
   jql_str_2 = 'AND '+ action[0] +' <= startOfDay(' + i + ')','AND '+ action[1] +' <= startOfDay(' + i + ')'
   jql_list_two_str.append(jql_str_2)

# jql_request = [' '.join(x) for x in zip(jql_list_one_str[1:], jql_list_two_str[:-1])]# Split list
# jql_request.insert(0,jql_list_one_str[0])


print(jql_list_one_str,jql_list_two_str)

问题根源

原代码中直接用逗号将两个字符串赋值给变量(比如jql_str = "xxx", "yyy"),这在Python里会创建元组,而非分别处理两个action对应的语句,导致后续列表里全是元组,无法正确拼接成目标JQL语句。

修正后的代码

我们需要为每个action(resolved和created)单独构建对应的JQL列表,直接生成符合预期的查询语句:

# Day 0 - current day , Day '-1' - Yesterday 
jql_day = ['', '-1', '-2', '-3']
resolved_jql = []
created_jql = []

# 处理第一个条目(仅>= startOfDay())
resolved_jql.append('project = MRCHNT AND resolved >= startOfDay()')
created_jql.append('project = MRCHNT AND created >= startOfDay()')

# 处理后续的区间查询
for idx in range(1, len(jql_day)):
    start_day = jql_day[idx]
    end_day = jql_day[idx-1]
    # 构建resolved的区间查询
    resolved_query = f'project = MRCHNT AND resolved >= startOfDay({start_day}) AND resolved <= startOfDay({end_day})'
    resolved_jql.append(resolved_query)
    # 构建created的区间查询
    created_query = f'project = MRCHNT AND created >= startOfDay({start_day}) AND created <= startOfDay({end_day})'
    created_jql.append(created_query)

# 输出结果
print("resolved列表:")
for q in resolved_jql:
    print(repr(q))
print("\ncreated列表:")
for q in created_jql:
    print(repr(q))

预期输出

resolved列表

'project = MRCHNT AND resolved >= startOfDay()'
'project = MRCHNT AND resolved >= startOfDay(-1) AND resolved <= startOfDay()'
'project = MRCHNT AND resolved >= startOfDay(-2) AND resolved <= startOfDay(-1)'
'project = MRCHNT AND resolved >= startOfDay(-3) AND resolved <= startOfDay(-2)'

created列表

'project = MRCHNT AND created >= startOfDay()'
'project = MRCHNT AND created >= startOfDay(-1) AND created <= startOfDay()'
'project = MRCHNT AND created >= startOfDay(-2) AND created <= startOfDay(-1)'
'project = MRCHNT AND created >= startOfDay(-3) AND created <= startOfDay(-2)'

内容的提问来源于stack exchange,提问作者Alex_Borovskii

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 08:01:28