2016-12-26 4 views
1

Ich habe einige JSON-Daten ich aus einer Datei lesen, die wie folgt aussieht:Durchläuft ich meine JSON-Daten korrekt?

{ 
"books": 
     { 
     "20": 
      { 
       "id":"10874", 
       "title":"Measurement of ... 

Ich weiß nicht, was „20“ bedeutet. Ich nehme an, es handelt sich um einen Schlüssel, um den es mir wirklich nicht geht. Ich kümmere mich um die Daten "nach" der "20". Also tue ich das ...

Obwohl dies funktioniert, stört mich, dass ich eine for-Schleife verwende, nur um einen Schlüssel zu bekommen. Ich bin mir sicher, dass ich das nicht richtig mache.

Dank

+0

können Sie nicht direkt 'analysiert [ 'Bücher' ] ["20"] ['titel'] '? – furas

+0

Ich nehme an, die '20' ist beliebig. –

+0

Wie wäre es mit 'junk ['title']' – furas

Antwort

4
book_key = parsed['books'].keys()[0] 
print parsed['books'][book_key]['title'] 
2

Wenn Sie nur einen Schlüssel haben, dann könnten Sie

book_key = parsed['books'].keys()[0] 

oder sogar (mit .items() statt .keys())

book_key, val = parsed['books'].items()[0] 

print book_key 
print val['title'] 
2
import json 

a1="""{ "books": { "20": { "id":"10874", "title":"Measurement of SPEED"},\ 
        "30": { "id":"10874", "title":"Measurement of LENGTH"}}}""" 

for b in json.loads(a1)['books'].values(): 
    print b['title'] 

Output tun:

Measurement of SPEED 
Measurement of LENGTH 
2

Sie können den Titel des ersten bekommen (und nur) direkt reservieren:

print parsed['books'].values()[0]['title'] 

Python 3:

print(list(parsed['books'].values())[0]['title']) 
Verwandte Themen