2012-10-17 16 views
18

Utilizzando Python, come posso estrarre il campo id in una variabile? Basicaly, i per trasformare questo:Selezione dei campi dall'uscita JSON

{ 
    "accountWide": true, 
    "criteria": [ 
     { 
      "description": "some description", 
      "id": 7553, 
      "max": 1, 
      "orderIndex": 0 
     } 
    ] 
} 

a qualcosa di simile

print "Description is: " + description 
print "ID is: " + id 
print "Max value is : " + max 
+1

Si potrebbe avere uno sguardo a http://docs.python.org/library/json.html Tutto può essere trovato lì. – cb0

risposta

25

presuppongono che memorizzati quel dizionario in valori variabili chiamato. Per arrivare id a una variabile, fare:

idValue = values['criteria'][0]['id'] 

Se questo JSON è in un file, effettuare le seguenti operazioni per caricarlo:

import json 
jsonFile = open('your_filename.json', 'r') 
values = json.load(jsonFile) 
jsonFile.close() 

Se quella JSON è da un URL, procedere come segue per caricarlo:

import urllib, json 
f = urllib.urlopen("http://domain/path/jsonPage") 
values = json.load(f) 
f.close() 

per stampare tutti i criteri, si potrebbe:

for criteria in values['criteria']: 
    for key, value in criteria.iteritems(): 
     print key, 'is:', value 
    print '' 
+0

Ciao, in effetti è un output http. proverò a convertire il tuo esempio per analizzare l'output dal sito web. –

+1

@Thales Vedi la sezione di esempio di: http://docs.python.org/library/urllib.html#examples Prendi il valore restituito da 'urllib.urlopen' e passa a' json.load' al posto di 'jsonFile 'il mio esempio sopra. – bohney

4

Supponendo che si abbia a che fare con una stringa JSON nell'input, è possibile analizzarla utilizzando il pacchetto json, vedere documentation.

Nell'esempio specifico che hai postato si avrebbe bisogno

x = json.loads("""{ 
"accountWide": true, 
"criteria": [ 
    { 
     "description": "some description", 
     "id": 7553, 
     "max": 1, 
     "orderIndex": 0 
    } 
    ] 
}""") 
description = x['criteria'][0]['description'] 
id = x['criteria'][0]['id'] 
max = x['criteria'][0]['max'] 
+0

come fare per accedere a tutte le descrizioni (o gli ID) di tutte le entità di livello superiore? – InquilineKea

Problemi correlati