2013-04-03 3 views
36

में चाबियाँ प्राप्त करें मेरे पास एक बहुत लंबी और जटिल जेसन ऑब्जेक्ट है लेकिन मैं केवल पहले स्तर पर आइटम/चाबियाँ प्राप्त करना चाहता हूं!पायथन JSON केवल पहले स्तर

उदाहरण:

{ 
    "1": "a", 
    "3": "b", 
    "8": { 
     "12": "c", 
     "25": "d" 
    } 
} 

मैं 1,3,8 परिणाम के रूप में प्राप्त करना चाहते हैं!

मैं इस कोड मिला:

for key, value in data.iteritems(): 
    print key, value 

लेकिन यह सब कुंजी (भी 12 और 25)

+3

नहीं, ऐसा नहीं है। यह कुंजी को प्रिंट करता है, और वे मूल्य जो स्वयं उप-शब्दकोश शामिल करते हैं। यदि आप केवल चाबियाँ मुद्रित करना चाहते हैं, तो मूल्य मुद्रित न करें। –

+0

संभव है [पायथन: एक शब्दकोश की कुंजी कैसे मुद्रित करें?] (Http://stackoverflow.com/questions/5904969/python-how-to-print-a-dictionarys-key) –

+1

लेकिन मैं subdictionary नहीं चाहता चाबियाँ ... मुझे पता है कि मैं "मूल्य" को छोड़ सकता हूं, यह सिर्फ डीबगिंग उद्देश्य – TeNNoX

उत्तर

64

बस एक साधारण .keys()

>>> dct = { 
...  "1": "a", 
...  "3": "b", 
...  "8": { 
...   "12": "c", 
...   "25": "d" 
...  } 
... } 
>>> 
>>> dct.keys() 
['1', '8', '3'] 
>>> for key in dct.keys(): print key 
... 
1 
8 
3 
>>> 

कर आप एक हल कर की जरूरत है प्रिंट सूची:

keylist = dct.keys() 
keylist.sort() 
+0

काम करता है, धन्यवाद :) – TeNNoX

0

यह जांचने का एक अच्छा तरीका है कि एक पाइथन ऑब्जेक्ट एक प्रकार का उदाहरण है, isinstance() का उपयोग करना है जो 'अंतर्निर्मित' फ़ंक्शन है।

for key in dct.keys(): 
    if isinstance(dct[key], dict)== False: 
     print(key, dct[key]) 
#shows: 
# 1 a 
# 3 b 
संबंधित मुद्दे