You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python调用Jira REST API返回201但未更新属性,如何修正?

修正Jira REST API更新属性的Python代码

你遇到的核心问题是端点与Payload格式不匹配,同时请求头缺少必要的Content-Type字段:

  • 你使用的/issue/{key}/properties/{propertyKey}端点是用于管理Issue自定义属性(附加在Issue上的键值对,不是自定义字段),但你的Payload用了更新自定义字段的fields嵌套结构,导致Jira创建了一个新的Issue属性而非修改目标字段。
  • 状态码201表示Jira成功创建了这个新属性,但这不是你想要的修改操作。

以下分两种场景给出修正方案:

场景1:更新自定义字段(customfield_15035是自定义字段)

如果customfield_15035是Jira后台配置的自定义字段,需使用Issue更新端点而非属性管理端点:

import requests
from requests.auth import HTTPBasicAuth
import json

# 替换为Issue更新端点
URL = 'https://myurl.atlassian.net/rest/api/3/issue/TEST-55?notifyUsers=false'

# 保留fields结构,确保字段值格式匹配自定义字段的定义(比如数组/对象结构)
payload = json.dumps({
    "fields": {
        "customfield_15035": [{"prop1": "xxxx", "prop2": "yyyy", "prop3": "zzzz"}]
    } 
})

# 必须添加Content-Type头,告知服务器请求体为JSON格式
headers = {
    "Accept": "application/json",
    "Content-Type": "application/json"
}

auth = HTTPBasicAuth(user, passw)

response = requests.put(URL, headers=headers, auth=auth, data=payload)
print(response.status_code)
# 打印响应内容便于排查问题
print(json.dumps(json.loads(response.text), indent=2))

场景2:更新Issue自定义属性(非自定义字段)

如果你确实要修改的是Issue的自定义属性(而非系统/自定义字段),则需调整Payload格式,去掉fields嵌套:

import requests
from requests.auth import HTTPBasicAuth
import json

# 保留properties端点
URL = 'https://myurl.atlassian.net/rest/api/3/issue/TEST-55/properties/customfield_15035?notifyUsers=false'

# 直接传入属性值,无需fields包裹
payload = json.dumps({
    "prop1": "xxxx",
    "prop2": "yyyy",
    "prop3": "zzzz"
})

# 添加Content-Type头
headers = {
    "Accept": "application/json",
    "Content-Type": "application/json"
}

auth = HTTPBasicAuth(user, passw)

response = requests.put(URL, headers=headers, auth=auth, data=payload)
print(response.status_code)
print(json.dumps(json.loads(response.text), indent=2))

额外排查建议

  • 调用Jira的/rest/api/3/issue/TEST-55 GET接口,查看当前Issue的字段和属性结构,确认customfield_15035的实际类型。
  • 打印响应内容,Jira会返回详细的错误提示(若存在),帮助定位格式问题。

内容的提问来源于stack exchange,提问作者larx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 04:16:13