2012-02-01 8 views
7

Yani bir Python kodu wich bunun gibi bir JSON dize döndürür vardır:Python'da belirli JSON değeri nasıl yazdırılır?

'{"X": "value1", "Y": "value2", "Z": [{"A": "value3", "B": "value4"}]}' 

Ne yapmak istiyorum yazdırmak ve/veya kullanmak için "value 3" (Python) döndürmektir. Ayrıca onu bir değişkene atayın, böylece daha sonra çalışabilirim.

Bunu nasıl yapabilirim?

+0

Koddaki hata için özür dilerim! thnx! – Jmlevick

+0

NOT: Verileri ayrıştırmak için "simplejson" modülünü kullanıyorum – Jmlevick

+0

Girdi hala geçerli bir JSON değil. 'value1' ve' value4' tırnak içinde olmalıdır. 'Simplejson' bile girişinizi çözemez. –

cevap

12
>>> import json 
>>> a = json.loads('{"X":"value1","Y":"value2","Z":[{"A":"value3","B":"value4"}]}') 
>>> a 
{'Y': 'value2', 'X': 'value1', 'Z': [{'A': 'value3', 'B': 'value4'}]} 
>>> a["Z"][0]["A"] 
'value3' 
+0

Oh! İki Şey: Verileri ayrıştırmak için "simplejson" modülünü kullanıyorum ve dizgem, son zamanlarda sorduğum soruya benzer ... Cevapınız geçerli mi? çünkü kullanıyorum simplejson.loads (datavariable) – Jmlevick

+0

Teşekkürler! Bu, başarmaya çalıştığım şey için kusursuz bir şekilde çalıştı! – Jmlevick

+0

Python'daki JSON dizelerinden belirli değerleri okumaktan daha fazla bilgi edinmek için okuyabileceğim herhangi bir eğitim var mı? – Jmlevick

3

Tamam, bu (her value civarında " edin) gibi JSON olduğunu varsayalım:

{"X":"value1", "Y":"value2", "Z":[{"A":"value3", "B":"value4"}]} 

Sonra bunu yapabilirsiniz:

import json 
j = '{"X":"value1", "Y":"value2", "Z":[{"A":"value3", "B":"value4"}]}' 
k = json.loads(j) 
assert k["Z"][0]["A"] == "value3" 

Düzenleme: bile simplejson, orijinal girişinizi çözemez.

>>> import simplejson 
>>> s1 = '{"X":value1,"Y":"value2","Z":[{"A":"value3","B":value4}]}' 
>>> simplejson.loads(s1) 
simplejson.decoder.JSONDecodeError: No JSON object could be decoded: line 1 column 0 (char 0) 
>>> s2 = '{"X":"value1", "Y":"value2", "Z":[{"A":"value3", "B":"value4"}]}' 
>>> print simplejson.loads(s2)["Z"][0]["A"] 
value3 
+0

Oh! İki Şey: Verileri ayrıştırmak için "simplejson" modülünü kullanıyorum ve dizgem, son zamanlarda sorduğum soruya benzer ... Cevapınız geçerli mi? çünkü simplejson.loads kullanıyorum (datavariable) – Jmlevick

İlgili konular