所以我有一个问题,我对JIRA的curl GET命令是有效的,但是返回一个int而不是一个json或字符串。当我在命令行中输入它时会有一个响应(将json obj的字符串表示打印到stdout(| python -m json.tool))。这是线路以及它返回的内容......
cmd1 = 'curl -X GET -H "Authorization: Basic ' + auth +' " -H "Content-Type:
application/json" https://jira.something-something.net/rest/api/latest/search?
jql=assignee=qa-auto' # | python -m json.tool'
这是使用它的地方......
print cls.cmd1
print bug.encoded
print subprocess.call(cls.cmd1, shell=True)
req_all = subprocess.call(cls.cmd1, shell=True)
print req_all
print str(req_all.__class__)
这就是回应......
curl -X GET -H "Authorization: Basic authkey " -H "Content-Type:
application/json" https://jira.something-
something.net/rest/api/latest/search?
jql=assignee=qa-auto
"{'fields': {'environment': [['- \\n', '- Repeated : 0 times']],
'description': [[]], 'summary': ['Fill in'], 'project': ['QA Automated Bug
Logger'], 'assignee': ['qa-auto'], 'issuetype': ['Bug'], 'priority':
['Major']}}"
0
0
<type 'int'> # The class of req_all, which == return value of subprocess.call(cls.cmd1)
我希望它能返回这样的东西......
{"fields": {
"project": [self.project],
"issuetype": [self.issue_type],
"priority": [self.priority],
"assignee": [self.assignee],
"environment": [self.environment],
"description": [self.description],
"summary": [self.summary] } }
这是我遍历所有返回的问题的地方(首先需要获得json obj以使其工作)...
# for each job create a percentage similarity
for jobj in req_all:
有人可以帮我弄清楚如何让这个curl命令返回一个有效的json对象或json字符串表示吗?谢谢你的阅读!
答案 0 :(得分:1)
尝试接收如下输出:
req_all = subprocess.call(cls.cmd1, shell=True, stdout=subprocess.PIPE)
(out, err) = req_all.communicate()
print out
如果有效,请告诉我。从那里,你应该能够使用内部的json python库来转换它,或者使用simplejson。