繁体   English   中英

在 Python 中处理 KeyError

[英]Handle KeyError in Python

我如何使用 if 处理KeyError 根据错误,以不同的方式处理错误。

speed_uhc_team = counts_stats['games']['SPEED_UHC']['modes']['team_normal']
speed_uhc_solo = counts_stats['games']['SPEED_UHC']['modes']['solo_normal']

我想要的是,如果字典中不存在键team_normal ,则将我选择的值分配给该键。

但是当key team_normal存在时,只分配key值。

这应该这样做:

d = { "team_solo": True}

if "team_normal" in d:
    print("I found team_normal in d!")

if "team_solo" in d:
    print("I found team_solo in d!")

只需检查密钥是否存在:

if 'team_normal' not in counts_stats['games']['SPEED_UHC']['modes'].keys():
    speed_uhc_team = my_choice_value
    
else:
    speed_uhc_team = counts_stats['games']['SPEED_UHC']['modes']['team_normal']
try: speed_uhc_team = counts_stats['games']['SPEED_UHC']['modes']['team_normal'] except KeyError: speed_uhc_team = counts_stats['games']['SPEED_UHC']['modes']['other_key']

如果只有最后一个键可以不存在,您可以使用get

speed_uhc_team = counts_stats['games']['SPEED_UHC']['modes'].get('team_normal',
                                                                 default_value)

如果你想挂起任何关键错误,你应该使用一个 try 块:

try:
    speed_uhc_team = counts_stats['games']['SPEED_UHC']['modes']['team_normal']
except KeyError:
    speed_uhc_team = default_value

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM