我需要一种方法来获得字典值,如果它的键存在,或简单地返回None,如果它不存在。

然而,如果你搜索一个不存在的键,Python会引发一个KeyError异常。我知道我可以检查钥匙,但我在寻找更明确的东西。如果键不存在,是否有一种方法只返回None ?


当前回答

d1 ={“一”:1、“两个”:2,“三”:3} d1.get(“四”)

如果你要运行这段代码,将不会有'Keyerror',这意味着你可以使用'dict.get()'来避免错误并执行你的代码

其他回答

您应该使用dict类中的get()方法

d = {}
r = d.get('missing_key', None)

这将导致r == None。如果在字典中没有找到键,get函数返回第二个参数。

您可以使用try-except块

try:
    value = dict['keyname']

except IndexError:
    value = None

你可以使用dict.get()

value = d.get(key)

如果key不在d中,返回None。你也可以提供一个不同的默认值来代替None:

value = d.get(key, "empty")

您可以使用dict对象的get()方法,正如其他人已经建议的那样。或者,根据你正在做的事情,你可以使用try/except套件,像这样:

try:
   <to do something with d[key]>
except KeyError:
   <deal with it not being there>

这被认为是处理这种情况的一种非常“python”的方法。

一个简单的解决方案是:

item['key'] if 'key' in item else None

这在尝试将字典值添加到新列表并希望提供默认值时非常有用:

eg.

row = [item['key'] if 'key' in item else 'default_value']