Python Jira api JQL 查询错误:字符“%”是保留的 JQL 字符

问题描述

我使用的是 Python 3.9 和这个 Jira python API https://jira.readthedocs.io/en/latest/index.html,我在搜索问题时遇到了这个错误: 字符“%”是保留的 JQL 字符。

问题是这个api的实现编码了jql查询查询如下:

jira_obj = JIRA(server=jira_url,basic_auth=(user,pwd))
query="status not in (Closed) AND assignee in (PIPPO,PLUTO)"
jira_obj.search_issues(jira_query)

将被编码为 https://jiradomain.com/jira/rest/api/2/search?jql=status+not+in+%2528Closed%2529+AND+assignee+in+%2528PIPPO%252CPLUTO%2529

其中 % 是 JQL 的保留字符。

解决方法

由于双重编码,您正面临此问题。关于这个问题有很多线索: What is url encoding %2526?

Springboot : Prevent double encoding of % by Resttemplate

特别是对于 JIRA,您可以在这里看到:https://github.com/pycontribs/jira/issues/336

github issue 中给出的解决方案可能与您有关:

编辑:我可以解决这个问题 - 我使用了一个过时的服务器端点,它只是将所有内容重定向到导致此问题的新端点。所以我可以确认在我的情况下这不是 python jira 的问题。

如果正在转发,则会发生双重编码。请检查是否是这种情况。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...