如何从 Python 中的 KeyError 中获取丢失的密钥?
How to I get the missing key from a KeyError in Python?
我正在编写一个辅助函数,因为我需要知道在引发 KeyError 时缺少什么键。
考虑一下:
def foo(x:dict):
try:
y = x['A']
except KeyError as ke:
return ke
foo(dict())
正如预期的那样,上面的代码引发了 KeyError。更具体地说,repr 是 KeyError('A')
.
我想访问缺少的“A”,但它似乎不是 KeyError
对象的属性。
有什么想法吗?
Ps。我这样做的原因是因为我想写一个
形式的函数
def check_calculation_dependency_on_data(calculation:callable, data:pd.DataFrame)->list[str]:
'''Returns the mandatory columns data needs to contain for the calculation to work'''
我有一个上面的版本,其中数据从所有列开始,并一次逐步删除它们(在 try-except 块内)以列出如果丢失会引发 KeyError 的列。但是,如果代码以空数据帧开头,并且我一一添加缺少的列,直到没有引发 KeyError,代码会更有效率。
这里已经回答了 Link
map1 = {}
try:
x = map1['key2']
except KeyError as e:
print(e.args[0])
我正在编写一个辅助函数,因为我需要知道在引发 KeyError 时缺少什么键。
考虑一下:
def foo(x:dict):
try:
y = x['A']
except KeyError as ke:
return ke
foo(dict())
正如预期的那样,上面的代码引发了 KeyError。更具体地说,repr 是 KeyError('A')
.
我想访问缺少的“A”,但它似乎不是 KeyError
对象的属性。
有什么想法吗?
Ps。我这样做的原因是因为我想写一个
形式的函数def check_calculation_dependency_on_data(calculation:callable, data:pd.DataFrame)->list[str]:
'''Returns the mandatory columns data needs to contain for the calculation to work'''
我有一个上面的版本,其中数据从所有列开始,并一次逐步删除它们(在 try-except 块内)以列出如果丢失会引发 KeyError 的列。但是,如果代码以空数据帧开头,并且我一一添加缺少的列,直到没有引发 KeyError,代码会更有效率。
这里已经回答了 Link
map1 = {}
try:
x = map1['key2']
except KeyError as e:
print(e.args[0])