1

我知道这很简单,但我无法理解它。我想在以下 dict/list 中访问歌曲“Sunrise”。使用 Python 执行此操作的正确方法是什么?

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

2 回答 2

5
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'}

要访问字典中列表的元素,在这种情况下,Sunrise内部的值Song

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

印刷:

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

在 Python 中,字典可以包含给定键的许多不同类型的值。分解你的字典,这就是一切:

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

d['Player']:

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

Key 是一个字符串,value 是一个播放列表的字典。


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

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

关键是Playlist,值是listionaries dict


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

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

这是一个列表访问器,它访问列表中的第一个元素(在这种情况下,dict包含Album和 的Song


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

结果:“酒吧”

Album使用播放列表内列表的第一个元素内的键访问字典的值。


或者,如果你是一个 perl 人,要拼出来,你有一个Players 字典,其中有一个字典,Playlists其中包含歌曲字典(歌曲数据)列表。

于 2013-08-28T16:05:34.643 回答
1

如果d是你的字典,那么

 d['Player']['Playlist'][1]['Song']
于 2013-08-28T16:22:22.343 回答