【问题标题】:ampersand is being replaced with comma与号被替换为逗号
【发布时间】: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.], "错误": {} }

标签: python jython


【解决方案1】:

我刚刚将 & 替换为 %26,效果很好

【讨论】:

    【解决方案2】:

    Jira Jql 查询出现问题,已通过 %26 解决。 这是一个例子:

    {
    "key": "search?jql= project = \"SS\" AND \"Customer Request Type\" = \"Infinity %26 Website (SS)\" AND \"Infinity Customer ID\" ~ \"417761\""
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-01
      • 2019-06-06
      • 1970-01-01
      相关资源
      最近更新 更多