我有以下
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。为什么会这样?
答案 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