python中出现keyerror_Python:调用Dict中的有效键/索引时出现KeyError

I have some JSON data that I'm pulling from a websocket:

while True:

result = ws.recv()

result = json.loads(result)

Here is Print(result):

{'type': 'ticker', 'sequence': 4779671311, 'product_id': 'BTC-USD', 'price': '15988.29000000', 'open_24h': '14566.71000000', 'volume_24h': '18276.75612545', 'low_24h': '15988.29000000', 'high_24h': '16102.00000000', 'volume_30d': '1018642.48337033', 'best_bid': '15988.28', 'best_ask': '15988.29', 'side': 'buy', 'time': '2018-01-05T15:38:21.568000Z', 'trade_id': 32155934, 'last_size': '0.02420000'}

Now I want to access the 'price' value.

print (result['price'])

This results with a KeyError:

File "C:/Users/Selzier/Documents/Python/temp.py", line 43, in

print (result['price'])

KeyError: 'price'

However, if I perform a loop on the (results) data, then I can successfully print both i and result[i]

for i in result:

if i == "price":

print (i)

print (result[i])

Which will print the following data:

price

16091.00000000

Why do I get a 'KeyError' when calling:

result['price']

AND

result[0]

When I'm not inside of the 'for i in result' loop?

解决方案

Create a guard in while True loop, like in for loop:

while True:

result = ws.recv()

result = json.loads(result)

if result and 'price' in result:

print(result['price'])

...

(read my comment)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值