修改:我已将此问题移至新帖子:Python: KeyError when Calling Valid Key/Index in Dict
我通过websocket成功接收了一些格式正确的JSON数据:
while True:
result = ws.recv()
result = json.loads(result)
我可以像这样遍历字典:
for i in result:
print (i)
print (result[i])
这将打印" Valid_Key"和" Some_value"。
但是,如果我尝试通过键名或索引访问它,我将收到一个" KeyError"。
print (result[0])
这将导致:
KeyError:0
print (result["Valid_Key"])
这将导致:
KeyError:' Valid_Key'
如何通过Python中的索引或键访问字典数据?
没有错误的示例: https://s17.postimg.org/e11brl99r/Success.jpg
KeyError示例: https://s17.postimg.org/t9r95mxvz/Key_Error.jpg
答案 0 :(得分:0)
True中的问题:在第一次迭代时得到的结果为15800.0,但在第二次迭代时,你的字典不包含key ='price'
在True循环中创建一个guard,就像在for循环中一样:
while True:
result = ws.recv()
result = json.loads(result)
if result and 'price' in result:
print(result['price'])
...
感谢sKwa,在这里回答: Python: KeyError when Calling Valid Key/Index in Dict