我从以前的同事那里得到了一个程序,现在应该维护它。这个 python 脚本使用给定的 jql(在 API 上)询问我们的 Jira 实例。返回是与搜索条件匹配的所有问题的列表。但现在它不起作用,我在服务器( Ubuntu )和我的本地 Windows PC 上收到 Json 错误消息。注意:它运行了大约一年,但当时它起作用了。
这是脚本的样子:
import json
import subprocess
jiraSerachUrl = "https://ourJiraInstance.net/rest/api/2/search?jql=key%20=%20%22TEST-123%22"
jiraResponse = subprocess.Popen(["curl","-l","-s","-u", "jiraUser"+":"+"jiraUserPassword", "-X", "GET", jiraSerachUrl ],stdout=subprocess.PIPE,shell=True).communicate()[0]
## shell=True only added for Windows Instance
print(type(jiraResponse))
##print = <class 'bytes'>
print(jiraResponse)
## print = b''
jiraJsonResponse = json.loads(jiraResponse.decode('utf-8'))
print(jiraJsonResponse)
jql/jira搜索地址返回如下(简答,返回任务的所有字段):
{"expand":"names,schema","startAt":0,"maxResults":50,"total":1,"issues": [{"expand":"operations,versionedRepresentations,editmeta,changelog,transitions, renderFields", "id":"145936","self":" https://ourJiraInstance.net/rest/api/2/issue/145936 ","key":"TEST-123","fields":{ “父母”:...
Windows PC上的错误如下
回溯(最后一次调用):文件“C:\Users\User\Desktop\test.py”,第 10 行,在 jiraJsonResponse = json.loads(jiraResponse.decode('utf-8')) 文件“C:\ Users\User\AppData\Local\Programs\Python\Python35-32\lib\json__init__.py”,第 319 行,加载返回 _default_decoder.decode(s) 文件“C:\Users\User\AppData\Local\Programs\ Python\Python35-32\lib\json\decoder.py”,第 339 行,在解码 obj 中,end = self.raw_decode(s, idx=_w(s, 0).end()) 文件“C:\Users\ User\AppData\Local\Programs\Python\Python35-32\lib\json\decoder.py",第 357 行,在 raw_decode 中从无 json.decoder.JSONDecodeError 引发 JSONDecodeError("Expecting value", s, err.value):期望值:第 1 行第 1 列(字符 0)
这是 Ubuntu 服务器上的错误(运行相同的脚本)
回溯(最后一次调用):文件“searchJira.py”,第 33 行,在 jiraJsonResponse = json.loads(jiraResponse) 文件“/usr/lib/python2.7/json/init .py ”,第 338 行,加载中return _default_decoder.decode(s) File "/usr/lib/python2.7/json/decoder.py", line 366, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end ()) 文件“/usr/lib/python2.7/json/decoder.py”,第 384 行,在 raw_decode 中引发 ValueError("No JSON object could be decoded") ValueError: No JSON object could be decoded
到目前为止,我尝试将 Json 负载更改为 simpleJson,但结果相同。更改 Json 应解码的格式(例如 unicode )无效。