Я делаю довольно простой запрос к нашему экземпляру Jira на создание заявки. Это работает, тикет создается, но когда я попытался разобрать ответ, я получил ошибку.
Traceback (most recent call last):
File "sdkAutomator.py", line 391, in <module>
loopThroughDirectory(arrFiles, repoPath)
File "sdkAutomator.py", line 225, in loopThroughDirectory
loopThroughDirectory(arrSubFiles, newPath)
File "sdkAutomator.py", line 225, in loopThroughDirectory
loopThroughDirectory(arrSubFiles, newPath)
File "sdkAutomator.py", line 225, in loopThroughDirectory
loopThroughDirectory(arrSubFiles, newPath)
File "sdkAutomator.py", line 219, in loopThroughDirectory
createJiraTicket()
File "sdkAutomator.py", line 344, in createJiraTicket
dictJira = json.loads(resp.json)
File "/usr/local/Cellar/python/3.7.7/Frameworks/Python.framework/Versions/3.7/lib/python3.7/json/__init__.py", line 341, in loads
raise TypeError(f'the JSON object must be str, bytes or bytearray, '
TypeError: the JSON object must be str, bytes or bytearray, not method
Когда я провожу проверку типа на json, отображается method
. Если я печатаю ответ, я вижу то, что ожидаю, согласно документации Atlassian:
{'id': '1100908', 'key': 'DOC-8594', 'self': 'https://jira.xxxxxxxx-services.com/rest/api/2/issue/1100908'}
Я новичок в работе с Python, поэтому мне интересно, не делаю ли я что-то не так в моем коде :
def createJiraTicket():
global strMsg
printInCyan("Creating JIRA Ticket...")
url = 'https://jira.xxxxxxxxx-services.com/rest/api/2/issue/'
#test ticket
#TO DO: This needs to be updated with variables for content of ticket
ticket = {'fields':
{
'project': {
'key': 'DOC'
},
'summary': 'Repo Updated:',
'description': 'There has been a change to the repo.',
'issuetype': {
'name': 'Task'
},
'assignee': {
'name':'auser'
},
'labels': ['automated_docs'],
'reporter': {
'name':'auser'
}
}
}
resp = requests.post(url, json = ticket, auth = ('app_jira_docs', 'FCTJza9D*=Y,I)s'))
if resp.status_code != 201:
print(resp.status_code)
#print(resp.json())
strMsg = strMsg + "\nJira Ticket Data:\n========================\n"
#parse json
dictJira = json.loads(resp.json)
#strMsg = strMsg + "Ticket ID: " + dictJira["key"] + "\n"
#strMsg = strMsg + "Ticket Link: " + dictJira["self"] + "\n"
Изменить: я пытался получить доступ к ответу следующим образом:
let jiraId = resp.json["key"]
, но это тоже привело к ошибке.