2016-12-06 1 views
0

출력을 JSON 형식의 명령으로 구문 분석하고 아래 오류로 실행하려고합니까? 명령 출력의 샘플도 제공했지만 해결 방법에 대한 지침이 있습니까?JSON 출력을 구문 분석하는 방법은 무엇입니까?

import subprocess,json 
user = 'user1' 
gerrit = '1234567' 
branch_cmd = "ssh -l %s -p 29418 review-android.quicinc.com gerrit query %s --format=JSON"%(user,gerrit) 
proc = subprocess.Popen(branch_cmd.split(' '), stdout=subprocess.PIPE, stderr=subprocess.PIPE) 
(output, error) = proc.communicate() 
print output["branch"] 

출력 : -

{"project":"platform/system/technology","branch":"technology.lnx.2.1-dev","topic":"","id":"Id1ca6a5167c8e7269b154824e5a5dd2389a2d1cf","number":"1234567","subject":"Bluetooth:HOGP Write Scan Interval Window characteristic","owner":{"name":"Firstname Kumar name","email":"[email protected]","username":"sname"},"url":"https://review-android.company.com/1234567","createdOn":1471052441,"lastUpdated":1480706360,"sortKey":"004195870019d68b","open":false,"status":"ABANDONED"} 
{"type":"stats","rowCount":1,"runTimeMilliseconds":1} 

ERROR : - :

for line in output.split('\n'): 
    print json.loads(line) 

처음에 액세스하려면 다음과 같이, JSON으로 문자열을 변환하는

File "strip_dev_rel.py", line 10, in <module> 
    print output["branch"] 
TypeError: string indices must be integers, not str 

답변

2

필요 하나 :

line1 = output.split('\n')[0] 
print json.loads(line)["branch"] 
관련 문제