【发布时间】:2016-01-21 02:13:11
【问题描述】:
我有 2 个字典。一个包含本地玩家数据,一个列出玩家的子字典:
class GameData:
def __init__(self):
self.player = {'id' : 1453339642,
'positionX' : 123,
'positionY' : 0
}
self.players = {1453339642:
{'name' : "Admin"}
}
gameData = GameData()
然后我打印出来只是为了检查一切是否正常:
for x in gameData.player:
print (str(x),':',gameData.player[x])
print("\n\n")
for x in gameData.players:
print (str(x))
for y in gameData.players[x]:
print (' ',y,':',gameData.players[x][y])
print("\n\n")
这会导致:
id : 1453339642
positionY : 0
positionX : 123
1453339642
name : Admin
当我现在想在玩家中访问玩家的 id 时,例如使用
#print(str(type(gameData.player)))
#print(str(type(gameData.players)))
print(str(type(gameData.players[1453339642])))
结果我得到了 KEYERROR。为什么?
【问题讨论】:
-
gameData = GameData()行是否正确缩进? -
是的,我只是将它错误地复制到了 stackoverflow 框中。如您所见,字典和子字典在那里,我可以打印出来。不知何故我无法访问特定密钥?
-
您的打印结果有些奇怪:
positionX应该是123。我重新输入了您的代码,它可以工作。在实例化和最终打印之间,gameData是否发生了什么事? -
哎呀是的。抱歉,现在也更正了。
标签: python-3.x keyerror