如何合并多个try-except块?

激流

我有一堆想要使用try的语句,除了on。是的,不好的做法。

必须有一种更pythonic的方式来编写以下内容?

try:
    E1=clean_html.find("span",{"class":"range-a"}).text
except AttributeError:
    E1=None

try:
    E2=clean_html.find("span",{"class":"range-b"}).text 
except AttributeError:
    E2=None

try:
    E3=clean_html.find("span",{"class":"range-c"}).text 
except AttributeError:
    E3=None

try:
    E4=clean_html.find("div",{"class":"Description"}).get_text(separator=" ").strip()
except AttributeError:
    E4=None

因为这段代码对我来说很好用,但是看起来效率很低。

乔尔巴斯

您可以编写一个处理try和except的函数。如果希望函数处理在调用方法上的None抛出错误的问题,则可以将post_processing作为lambda传递

def get_clean_text(tag, class_name, post_processor):
    try:
        return post_processor(clean_html.find(tag,{"class": class_name}))
    except AttributeError:
        return None

E1 = get_clean_text("span", "range-a", lambda o: o.text)
E4 = get_clean_text("div", "Description", lambda o: o.get_text(separator=" ").strip())

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

try/except 块的范围

Python:如何使用相同的try / except块简化多个语句

如何使try / except块内的变量公开?

避免从类重复try / except块的代码

try / except块中的Python变量范围

Try / Except块的Python单元测试

如何使用 try 和 except 块防止重复?

如何使用pytest测试try/except块的异常

如何在嵌套的try / except块中重新引发异常?

如何在嵌套的try / except块中重新引发异常?

如何在 try/except 块中获取 cgitb 回溯?

警告:try 块中的 'X' 与 'except ImportError' 也应该在 except 块中定义

在可以取消的任务中使用 try/except 块的正确方法

在try / except块中创建变量是否被视为不良做法?

在try-except块中使用python“ with”语句

查找函数的 try/except 块中是否发生错误

python缩短嵌入式try-except块

在try / except块中串联数据帧

EOFError,即使尝试了try和except块之后

Python中的try-except块未处理异常

脚本卡在try-except块中

Try-Except块-是否正确执行此操作?

即使有 try...except 块也会抛出异常

Python:通过带有多个例外的Try / Except块传播异常

while循环中有多个输入,以及Python中的try-except块

使用Try and Except块,但是在Except部分中,它显示了Not Defined Python

用Pytest测试Asyncio:如何通过模拟事件循环来测试try-except块?

作用域如何与python中的try和except块一起使用?

如何使特定字符串在 try-except 块中工作?