Python Jira Rest Api 代码生成无效字符串

Posted

技术标签:

【中文标题】Python Jira Rest Api 代码生成无效字符串【英文标题】:Python Jira Rest Api code generates invalid string 【发布时间】:2021-10-20 09:00:33 【问题描述】:

我正在尝试使用 Python 连接到 Jira Rest Api 并尝试将数据保存到文本文件中,但是我收到了作为响应返回的巨大字符串,这似乎是无效字符串,并且还包含 html 标签。

我正在尝试使用 Api 令牌、projectkey 和 url 连接 Jira。我还需要提供用户、密码验证吗?

下面是我的代码:

import base64
import os
from jira import JIRA
import sys
import requests
import json
import shutil

os.environ["HTTPS_PROXY"] = "XXXX"

# Base encode email and api token
cred =  "Basic " + base64.b64encode(b'XXX@bk.de:XXXX').decode("utf-8")
# Set header parameters
headers = 
   "Accept": "application/json",
   "Content-Type": "application/json",
   "Authorization" : cred


# Enter your project key here
projectKey = "TEST"

# Update your site url
url = "https://jira-test.net/secure/RapidBoard.jspa?rapidView=194&projectKey=" + projectKey

# Send request and get response
response = requests.request(
   "GET",
   url,
   headers=headers
)

# Decode Json string to Python
json_data = json.loads(response.text)

# Display issues
for item in json_data["issues"]:
    print(item["id"] + "\t" + item["key"] + "\t" +
        item["fields"]["issuetype"]["name"] + "\t" +
        item["fields"]["created"]+ "\t" +
        item["fields"]["creator"]["displayName"] + "\t" +
        item["fields"]["status"]["name"] + "\t" +
        item["fields"]["summary"] + "\t"
        )

【问题讨论】:

json.loads之前添加print(response.text),看看你的JSON响应是否有效 我已经添加了,我得到了一个看起来像错误的巨大字符串,但它也是带有 html 标签的数据......我什么都不懂 我想我会编辑我的问题,问题在于代码... 首先需要检查的是response.status_code 【参考方案1】:

根据您的评论,Jira API 正在返回一些 HTML 代码,这意味着您的响应中可能有错误。

您需要检查是否从 API 收到 200 响应。

替换

# Decode Json string to Python
json_data = json.loads(response.text)

通过

# Check for API errors
response.raise_for_status()

# Decode Json string to Python
json_data = response.json()

【讨论】:

再次生成同样巨大的无效响应,但在行尾我可以看到:requests.exceptions.HTTPError: 401 Client Error: Unauthorized for url: 您现在可以删除print(response.text)。 401错误表示您的网址不正确,尝试添加print(url)并在浏览器中手动访问。 是的 url 链接是正确的,我尝试在浏览器中打开...一个问题 url 指向 Jira 中的看板是正确的吗?看起来像身份验证问题...我正在尝试使用 Api 令牌连接 Jira 我对 Jira API 一无所知,请尝试查找他们的文档。

以上是关于Python Jira Rest Api 代码生成无效字符串的主要内容,如果未能解决你的问题,请参考以下文章

Python无法通过以下方式连接Jira API

如何使用 java rest api 在 jira 中创建问题

JIRA REST API cors

使用 jira 中的 REST api 修改自定义字段名称后,CustomFieldManager 未获取自定义字段

如何使用 JIRA REST API 将 JIRA Agile 问题分配给当前用户的当前 sprint?

JIRA REST java client API实际应用