KeyError与字典

时间:2019-10-16 01:31:45

标签: python dictionary

我有以下

a = {'afaf178a0a3e4f91812d36a3c3289dbd': {'profile_id': 'afaf178a0a3e4f91812d36a3c3289dbd', 'cute_name': 'Watermelon'}, 'cd1800ef65ea4ac7a65effed5ed420d0': {'profile_id': 'cd1800ef65ea4ac7a65effed5ed420d0', 'cute_name': 'Peach'}, 'b673d818a57f4cdeb549c0cbe152ed51': {'profile_id': 'b673d818a57f4cdeb549c0cbe152ed51', 'cute_name': 'Papaya'}}

尝试使用a[0]访问它时,出现KeyError。为什么会这样?

2 个答案:

答案 0 :(得分:0)

每当请求KeyError对象并且键不在字典中时,Python都会引发dict()

以帖子中的字典为例:

>>> a.keys()
dict_keys(['afaf178a0a3e4f91812d36a3c3289dbd', 'cd1800ef65ea4ac7a65effed5ed420d0', 'b673d818a57f4cdeb549c0cbe152ed51'])

0不在您提供的词典中,因此不在KeyError中。

答案 1 :(得分:0)

您的字典具有键:

>>> a.keys()
['b673d818a57f4cdeb549c0cbe152ed51', 'afaf178a0a3e4f91812d36a3c3289dbd', 'cd1800ef65ea4ac7a65effed5ed420d0']

您应该使用其中之一来访问值。否则,您可以使用以下方法迭代键:

for k in a.keys() :
    pass # put something here

或者您可以遍历值:

for v in a.values() :
    pass # put something here

或者您可以遍历这两者:

for k,v in a.items() :
    pass # put something here