2016-12-26 84 views
1

我有我的,看起來像這樣一個文件中讀取一些JSON數據:我是否正確迭代了我的json數據?

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

我不知道什麼是「20」的意思。我認爲這是我真正不在乎的某種關鍵。我關心「20」之後的數據。所以,我這樣做...

for bk, junk in parsed['books'].iteritems(): 
    book_key = bk 
print book_key 
print "------------------\n" 
print parsed['books'][book_key]['title'] 

雖然這個工作,它困擾着我,我使用一個for循環剛一鍵搞定。 我相信我沒有這樣做。

感謝

+0

你就不能直接'解析[ '書' ] [「20」] ['標題']'? – furas

+0

我假設'20'是任意的。 –

+0

'垃圾['標題']' – furas

回答

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

如果你只有一個鍵,然後你可以做

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

甚至(使用.items()代替.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'] 

輸出:

Measurement of SPEED 
Measurement of LENGTH 
2

可以拿到第一的稱號(只),直接書:

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

的Python 3:

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