Я пытаюсь сделать вызов 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 для обработки и выполнения запроса
@GreenCloakGuy - спасибо за ответ, но этот код был от почтальона после обработки, поэтому он меняет фактический вызов jira API на этот. но теперь я напрямую сделал вызов API, это все та же ошибка. { "errorMessages": [ "Ошибка в запросе JQL: строка в кавычках "Test: Dev int: commons" не была завершена. ], "errors": {} }
Вы не можете использовать амперсанды и пробелы в URL-адресах. Может быть, вам нужно их Код URI?
В качестве альтернативы, вы пытались экранировать амперсанд с помощью символа обратной косой черты? (что может потребовать двойной обратной косой черты, чтобы избежать самого символа обратной косой черты)
@GreenCloakGuy - я сбежал, используя \\ и \, но не повезло, выдает ошибку. { "errorMessages": [ "Ошибка в запросе JQL: escape-последовательность не была завершена. Допустимые escape-последовательности: \\', \\\", \\t, \\n, \\r, \\\ \, '\\' и \\uXXXX.], "ошибки": {} }
Можете ли вы попробовать поместить строку в тройные кавычки, а затем посмотреть, работает ли она? Пример - """<ваша строка здесь> """
Я просто заменил & на %26, и все заработало.






Я только что заменил & на %26, и все заработало.
Возникла проблема с запросом Jira Jql, решена с помощью %26. Это пример:
{
"key": "search?jql= project = \"SS\" AND \"Customer Request Type\" = \"Infinity %26 Website (SS)\" AND \"Infinity Customer ID\" ~ \"417761\""
}
В нынешнем виде ваш код
querystringнедействителен для Python. Если в вашей строке есть двойные кавычки, подумайте о том, чтобы сделать внешний набор кавычек одинарными, чтобы вам не приходилось избегать двойных кавычек внутри.