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

Python3.8调用Jira API获取字段遇AttributeError及认证问题

解决Jira Python API初始化报错及认证问题

看起来你遇到了Jira Python API的双重问题:初始化时的版本解析错误,以及认证权限问题。我来帮你一步步排查解决:

问题根源分析

  1. 服务器版本解析错误:你使用的jira库版本在初始化时会尝试获取Jira服务器的版本信息(serverInfo接口),但你的Jira服务器返回的响应中没有versionNumbers字段,甚至返回了布尔值(从报错'bool' object has no attribute 'error'可以看出),导致库解析失败抛出异常。
  2. 认证权限问题:浏览器能正常访问工单API是因为浏览器保存了会话Cookie,但curl和Python库使用的Basic Auth被服务器拒绝,说明你的认证方式或账号权限有问题。

解决方案

1. 快速跳过版本检查,解决初始化报错

在初始化JIRA对象时添加server_info=False参数,让库跳过服务器版本信息的获取,直接完成初始化:

from jira import JIRA
def main():
    options = {'server':"https://jira.test.com/" }
    # 添加server_info=False跳过版本检查
    jira = JIRA(options, basic_auth=('username', 'password'), server_info=False)
    issue = jira.issue('XXXX-10085')
    print(issue.fields.project.key)
    print(issue.fields.issuetype.name)
    print(issue.fields.reporter.displayName)
    print(issue.fields.summary)
    print(issue.fields.project.id)
if __name__== "__main__" :
    main()

2. 修复认证问题

针对curl返回AUTHENTICATION_DENIED的情况,你需要做以下检查:

  • 如果启用了双因素认证(2FA):不能直接使用账号密码进行Basic Auth,需要去你的Jira个人资料中生成API Token,然后用basic_auth=('你的用户名', 'API Token')替代原来的密码。
  • 检查账号权限:确认你的账号拥有访问Jira REST API的权限,比如是否属于Jira Users组,或者是否被管理员授予了API访问权限。
  • 测试认证有效性:先用curl命令验证认证信息是否正确:
    curl -u 你的用户名:密码/API_Token https://jira.test.com/rest/api/2/serverInfo
    
    如果返回正常的JSON响应,说明认证没问题;如果还是返回拒绝,联系Jira管理员排查账号权限。

3. 升级jira库(可选)

你看到的WARNING:root:Bug https://jira.atlassian.com/browse/JRA-59676 trying again...是旧版本jira库的已知bug,升级到最新版本的jira库可以解决这个警告,同时可能兼容更多Jira服务器版本:

pip install --upgrade jira

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:09:12