2016-08-16 3 views
0

Ich bin ein Newb mit JSON und versuche zu verstehen, wie eine JSON-Antwort zu analysieren. Im folgenden Beispiel würde ich gerne wissen, wie man den Wert von 'issueId' abruft: 'executions': 'id'? im Beispiel unten ist '8195' .....Python Analyse JSON Antwort

r = requests.get(baseURL + getExecutionsForIssueId + id, auth=('user','pass')) 
data = r.json() 


JSON Response: 
    { 
     "status": { 
      "1": { 
       "id": 1, 
       "color": "#75B000", 
       "description": "Test was executed and passed successfully.", 
       "name": "PASS" 
      }, 
      "2": { 
       "id": 2, 
       "color": "#CC3300", 
       "description": "Test was executed and failed.", 
       "name": "FAIL" 
      }, 
      "3": { 
    . 
    . 
    . 
     } 
    }, 
    "issueId": 15825, 
    "executions": [ 
     { 
      "id": 8195, 
      "orderId": 7635, 
      "executionStatus": "-1", 
      "comment": "", 
      "htmlComment": "", 
. 
. 
. 
+1

'data [ 'issueId']'? –

+1

Ich habe gerade eine Frage sehr ähnlich beantwortet, die Ihnen [für komplexere json] helfen könnte (http://stackoverflow.com/questions/38978428/how-do-i-start-pulling-apart-this-block-of-json -data/38979645 # 38979645). Es gibt viele Beispiele für diese Art von Dingen. – roganjosh

Antwort

0

Ihr JSON Objekt nur ein Wörterbuch in Python ist. Greifen Sie auf die gewünschten Werte wie folgt zu:

data['executions'] ergibt ein Array von ähnlichen Wörterbuchobjekten, vorausgesetzt, dass Ihre JSON Antwort wie eingegeben eingegeben wird.

executions = data['executions'] 
order_id = executions[0]['orderId'] 

Wenn Sie über sie Schleife wollen mit einem id von 8195 das richtige Objekt zu finden:

executions = data['executions'] # [{'id':8195,'orderId':7635,...}, {...}, ...] 
for e in executions: 
    if e['id'] == 8195: # e is the dict you want 
     order_id = e['orderId'] 
+0

Ich habe die ursprüngliche Frage oben zu "Ich möchte wissen, wie man den Wert von 'issueId' abrufen: 'Ausführungen': 'ID'? In dem Beispiel unten ist es '8195' ....." . Um dies zu erreichen: execution = data ['executions'] execId = Ausführung [0] ['id'] – webcrew