2012-10-17 24 views
18

Python'u kullanarak, id alanını bir değişkene nasıl ayırım? Temelde, ben bu dönüşümü:JSON çıktısından alanların seçilmesi

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

şeye

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

gerekir yayınlanmıştır. – cb0

cevap

25

gibi saklanan varsayalım ki değişken olarak adlandırılan değerlerinde sözlük. Bir değişkene içinde id almak için yapın: o json bir URL'den ise

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

aşağıdakileri yapın: o json bir dosyada olduğu

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

, onu yüklemek için aşağıdakileri yapın yüklemek için:

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

kriterlerden TÜM yazdırmak için, olabilir:

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

Merhaba, aslında bir http çıktı. Web sitesinden çıktıyı ayrıştırmak için örneğinizi dönüştürmeyi deneyeceğim. –

+1

@Thales http://docs.python.org/library/urllib.html#examples adresinin örnek bölümüne bakın. Urllib.urlopen' tarafından döndürülen değeri alın ve jsonFile yerine json.load'a aktarın. Yukarıdaki örneğim. – bohney

4

Girdideki bir JSON dizgisiyle uğraştığınızı varsayarak, json paketini kullanarak ayrıştırabilirsiniz, bkz. documentation. Belirli bir örnekte

Eğer Sen http://docs.python.org/library/json.html bir göz Her şey bulunabilir olabilir

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

Tüm üst düzey öğeler arasında tüm açıklamalara (veya kimliğe) erişim hakkında ne dersiniz? – InquilineKea

İlgili konular