python 判断字典是否有某个键值发生系统错误,求解答。

图片描述

如图所示:

name[1] 是一个元组。
我先判断name[1] 是否在 sub_cert_opreation.keys() 的键值中,如果在的话才执行下面的语句。

现在发现遇到一些元组的时候就会发生下面的错误:

    **sub_cert_opreation[name[1]][0] += 1

KeyError: ('3212831986020537876', '6402211989082678675')**

查了下KeyError 是当键值不存在才返回的报错。
可是我的循环里面已经写入这个条件判断了,如果不存在的话就赋给值为1.

那么报错到底是因为什么愿意导致的呢?

阅读 2.7k
2 个回答

按照你说的name[1]是一个元组,那么
应该执行elif里面的语句,对dict根据key取value,你用的是a_dict[name[1]],在你这也就相当于是

sub_cert_opreation[('3212831986020537876', '6402211989082678675')]

把一个元组作为key了,错误应该就出在这里吧。

你的操作要跟条件判断一致啊。应该是:

sub_cert_opreation[name[1][::-1]][0] += 1

另外,是operation吧

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题