python - Python:捕获两个异常之一
问题描述
我有以下一段代码。article_as_dict
是我从外部来源收到的字典:
final_dict["short_title"] = article_as_dict["short_title"]
try:
final_dict["picture_url"] = article_as_dict["main_image"]["img"][-1]["link"]
except IndexError:
final_dict["picture_url"] = None
我最近发现我还需要考虑一个可能的问题KeyError
,下面的块是最pythonic的方法吗?
final_dict["short_title"] = article_as_dict["short_title"]
try:
final_dict["picture_url"] = article_as_dict["main_image"]["img"][-1]["link"]
except IndexError:
final_dict["picture_url"] = None
except KeyError:
final_dict["picture_url"] = None
我不想要一个裸except
条款,因为这是不好的做法。
解决方案
您可以在一行中捕获多种类型的错误。
来自Python 文档:
except 子句可以将多个异常命名为带括号的元组
像这样捕捉你的错误会更加pythonic:
except (IndexError, KeyError)...
推荐阅读
- javascript - 如何在标记上放置事件?
- python - 计算平均绝对偏差的自定义函数
- python - Bin使用累积和而不是python中的观察值
- c++ - 我们如何将数组的每个元素相乘并将每个乘积值存储在 c++ 中的数组中?
- python - 在一堆元组上做一个 for 循环?
- multithreading - 减少导致高 CPU 的特定进程的线程数
- json - 从字典中获取键
- java - 使用 Mockito 测试我的 SpringBoot 应用程序时如何从属性文件中传递变量?
- javascript - 如何将下拉选择更新为“已选择”onClick
- php - 如何获取 PHP 标签之间的函数的 HTML 内容?