2013-08-28 202 views
-1

我知道這是純粹簡單的事情,但我無法圍繞它來包裹我的頭。我想在下面的字典/列表中訪問歌曲「日出」。用Python做這件事的正確方法是什麼?Python - 從字典裏面的字符串獲取字符串

{"Player": 
    {"Playlist": 
     [ 
      {"Song" : "Foo", "Album" : "Bar"}, 
      {"Song" : "Sunrise", "Album", : "Random"} 
     ] 
    } 
} 
+1

你想* *僅訪問歌曲日出?請記住關鍵是「歌曲」和「日出」是價值。 –

+3

詢問代碼的問題必須證明對所解決問題的最小理解。包括嘗試解決方案,爲什麼他們沒有工作,以及預期的結果。 – Marcin

回答

4
d = {"Player": 
    {"Playlist": 
     [ 
      {"Song" : "Foo", "Album" : "Bar"}, 
      {"Song" : "Sunrise", "Album", "Random"} 
     ] 
    } 
} 

for song in d['Player']['PlayList']: 
    print song 

打印:

{'Album': 'Bar', 'Song': 'Food'} 
{'Album': 'Random', 'Song': 'Sunrise'} 

要訪問的列表的元素在字典中,在這種情況下,值SunriseSong內:

for song in d['Player']['Playlist']: 
    if song['Song'] is 'Sunrise': 
     #do thing with song here 
     print song 

打印:

{'Album': 'Random', 'Song': 'Sunrise'} 

在Python中,Dictionary可以包含給定鍵的許多不同類型的值。打破你的字典,這就是一切居然是:

{"Player": 
    {"Playlist": 
     [ 
      {"Song" : "Foo", "Album" : "Bar"}, 
      {"Song" : "Sunrise", "Album", "Random"} 
     ] 
    } 
} 

d['Player']:

結果{'Playlist': [{'Album': 'Bar', 'Song': 'Food'}, {'Album': 'Random', 'Song': 'Sunrise'}]}

關鍵是一個字符串,其值是播放列表的字典。


d['Player']['Playlist']:

結果{'Playlist': [{'Album': 'Bar', 'Song': 'Food'}, {'Album': 'Random', 'Song': 'Sunrise'}]}

關鍵是Playlist,該值是dictlist ionaries。


d['Player']['Playlist'][0]

結果{'Album': 'Bar', 'Song': 'Food'}

這是一個列表訪問器,它訪問的第一個元素列表中(在這種情況下,保持所述AlbumdictSong


d['Player']['Playlist'][0]['Album']:

結果: '酒吧'

訪問詞典與播放列表內的列表的第一個元素中的關鍵Album值。


或者拼出來,如果你是一個Perl的傢伙,你有Player s表示有Playlists與它裏面的歌曲詞典(樂曲數據)列表的字典詞典。

+0

哇,輝煌的答案!感謝您花時間寫出來! – Dustin

1

如果d是你的字典,然後

d['Player']['Playlist'][1]['Song']