You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python字典遇KeyError时返回None的实现问题

解决方案:处理字典KeyError并返回None
  • 先排查dict.get()失效的核心原因:如果是访问嵌套字典的深层键,直接用dict.get('key1.key2')是无效的,必须逐层调用get方法:

    # 示例:获取嵌套字典的深层值,不存在则返回None
    nested_dict = {'a': {'b': 123}}
    value = nested_dict.get('a', {}).get('b', None)
    # 若a不存在,get('a', {})返回空字典,再调用get('b')就返回None
    
  • 如果你自己实现的方法遇到KeyError无法返回None,直接用try-except捕获异常即可:

    def safe_get(d, *keys):
        try:
            for key in keys:
                d = d[key]
            return d
        except KeyError:
            return None
    
    # 使用示例
    test_dict = {'x': {'y': 456}}
    print(safe_get(test_dict, 'x', 'y'))  # 输出456
    print(safe_get(test_dict, 'x', 'z'))  # 输出None
    
  • 也可以用collections.defaultdict自定义默认返回值为None:

    from collections import defaultdict
    # 创建默认返回None的字典
    safe_dict = defaultdict(lambda: None)
    print(safe_dict['non_existent_key'])  # 输出None
    

内容的提问来源于stack exchange,提问作者Grape Flavored Nerd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 00:44:06