Python for循环中用except捕获AttributeError时赋值异常问题求助
问题根因
- 你的
except代码块仅写了"null"字符串字面量,没有将该值赋值给df1变量。当i.QID1不存在触发异常时,df1会保留上一轮循环的旧值,最终导致重复追加历史数据到lst2。 - 额外注意:
list.append()是原地修改方法,返回值为None,原代码中df2 = lst2.append(df1)的赋值操作无实际作用,df2最终只会是None。
修正后可运行代码
import pandas as pd # 若代码开头已导入pandas可省略该行 lst2 = list() for i in lst1: try: df1 = pd.DataFrame(i.QID1) except AttributeError: df1 = "null" # 异常场景下显式给df1赋值 lst2.append(df1) # append为原地操作,不需要赋值给新变量
可选调整说明
如果你的业务逻辑需要填充空DataFrame而非字符串"null",可以把except块内的df1 = "null"替换为df1 = pd.DataFrame()即可。
内容的提问来源于stack exchange,提问作者littletimmy
相关产品推荐
相关产品推荐

