【发布时间】:2019-07-16 16:59:36
【问题描述】:
我正在尝试对 jira 进行休息调用,jql 如下。
jql="Project" = "Test: Dev int: commons & Uig mat"
所以当我对 jira 进行其余调用时,它正在替换 jql,如下所示:
jql="Project" = "Test: Dev int: commons ',' Uig mat"
所以,& 被替换为“,”,这会引发错误,因为该项目在 jira 中不可用
我尝试用 & 替换“,”,它在运行时再次用“,”替换它。
import requests
url = "https://jira.com/login/rest/api/2/search"
querystring = {jql='working Project' = 'Test: Dev int: commons & Uig mat'}
headers = {
'content-type': "application/json",
}
response = requests.request("GET", url, headers=headers, params=querystring)
print(response.text)
我想将确切的字符串传递给 jira 进行处理和查询
【问题讨论】:
-
就目前而言,您的
querystring代码不是有效的python。如果字符串中有双引号,请考虑将外部引号设置为单引号,这样您就不必转义内部的双引号。 -
@GreenCloakGuy -- 感谢您的回复,但该代码是来自邮递员处理后的代码,因此它将实际的 jira api 调用更改为该代码。但现在我直接做了一个api调用,它仍然是同样的错误。 { "errorMessages": [ "JQL 查询中的错误:引用的字符串 'Test: Dev int: commons' 尚未完成。], "errors": {} }
-
你不能在 URL 中加入 & 和空格。也许你需要URI encode他们?
-
或者,您是否尝试过使用反斜杠字符转义与号? (这可能需要使用双反斜杠来转义反斜杠字符本身)
-
@GreenCloakGuy - 我使用 \\ 和 \ 逃脱了它,但没有运气,抛出错误。 { "errorMessages": [ "JQL 查询中的错误:转义序列尚未完成。有效的转义序列是 \\', \\\", \\t, \\n, \\r, \\\ \, '\\' 和 \\uXXXX.], "错误": {} }