python - 处理多个 Try/Except 语句
问题描述
我正在使用多个 try/except 块将数据帧(比如数据)的值分配给 3 个变量(比如 b、c、d)如果位置索引器超出范围,我想处理IndexErrors 。我目前正在做的如下所示:
b,c,d=None,None,None
try:
b=data.iloc[1,1]
except:
pass
try:
c=data.iloc[2,1]
except:
pass
try:
d=data.iloc[0,2]
except:
pass
我想知道是否有更好的方法,比如函数 try_except() 或其他东西,以便我可以使用它,如下所示:
try_except(b=data.iloc[1,1])
try_except(c=data.iloc[2,1])
try_except(d=data.iloc[0,2])
解决方案
您可以只编写一个执行查找并捕获异常的函数,但顺便说一句,except: pass
这可能是个坏主意。您应该更具体地处理错误。
def safe_get(container, i, j):
try:
return container[i,j]
except IndexError: # or whatever specific error you're dealing with
return None
b = safe_get(data.iloc, 1, 1)
c = safe_get(data.iloc, 2, 1)
d = safe_get(data.iloc, 0, 2)
推荐阅读
- html - 如何删除页脚下方的这个白色 HTML 空间?
- docker - 在 docker compose 中命名服务以用作主机名
- google-cloud-platform - 触发谷歌云函数桶中的文件有效负载
- vue.js - 如何在 webpack 中使用 vuejs 禁用将块拆分为不同的文件?
- hibernate - 如何在 gradle 中启用休眠字节码增强
- unity3d - 2D程序地牢生成游戏
- javascript - 获取变量错误:“未定义”
- sql - Spark SQL 查询优化技术
- javascript - JS window.onload 为什么不等待加载
- python - 从 django 模型中获取数据