原来,这是我的使用 json.dumps(body) 与...结合 put(..., json=body, ...) 造成这个问题。
json.dumps(body)
put(..., json=body, ...)
使用json关键字告诉Requests再次序列化字符串,将“标记转义为”并再次将其包装在引号中。
有效:
{"fields": {"issuetype": {"id": 10702},"project": {"id":10061},"description": "","summary": "Execution for Issue: SDBX-859"}}
变成了:
"{\"fields\": {\"issuetype\": {\"id\": \"10702\"}, \"project\": {\"id\": \"10061\"}, \"description\": \"Execution for Issue: SDBX-859\", \"summary\": \"Execution for Issue: SDBX-859\"}}"
使用 body=json.dumps({...}) 使用手动设置的内容标题或 json={...} 不是都。
body=json.dumps({...})
json={...}
当请求正文格式不正确时,Jira会返回类似“无法实例化类型的值...”的错误。在您的情况下,您提供了一个字符串,其中Jira期望更复杂的内容(通常是dict)。