在 for 循环中使用 except 解决 AttributeError (Python)
Addressing AttributeError with except in for loop (Python)
Python 的新手,但这是我使用的代码:
lst2 = list()
for i in lst1:
try:
df1 = pd.DataFrame(i.QID1)
except AttributeError:
"null"
df2 = lst2.append(df1)
lst2 正在生成我想要的输出,但 i.QID1 不存在的实例将由前一个实例的数据填充,而不是“null”。我确定这是因为 'except AttributeError' 部分,只是不确定如何修复它。正如我所说,我是菜鸟。
非常感谢您的帮助!
您的缩进不正确,您没有将“空”值分配给任何内容。
lst2 = list()
for i in lst1:
try:
df1 = pd.DataFrame(i.QID1)
except AttributeError:
df1 = "null"
lst2.append(df1)
- 如果你想让它发生在循环内,在
for
循环下必须缩进。
try
和 except
需要在同一级别的缩进。
- 将
df1
附加到 lst2
不会 return 任何东西,因此没有必要将其分配给 df2
。
构建此列表的另一种方法可能是编写一个函数,该函数 return 是给定 i
的数据框(或“空”),并在理解中使用它:
def dataframe_or_null(i):
try:
return pd.DataFrame(i.QID1)
except AttributeError:
return "null"
lst2 = [dataframe_or_null(i) for i in lst1]
Python 的新手,但这是我使用的代码:
lst2 = list()
for i in lst1:
try:
df1 = pd.DataFrame(i.QID1)
except AttributeError:
"null"
df2 = lst2.append(df1)
lst2 正在生成我想要的输出,但 i.QID1 不存在的实例将由前一个实例的数据填充,而不是“null”。我确定这是因为 'except AttributeError' 部分,只是不确定如何修复它。正如我所说,我是菜鸟。
非常感谢您的帮助!
您的缩进不正确,您没有将“空”值分配给任何内容。
lst2 = list()
for i in lst1:
try:
df1 = pd.DataFrame(i.QID1)
except AttributeError:
df1 = "null"
lst2.append(df1)
- 如果你想让它发生在循环内,在
for
循环下必须缩进。 try
和except
需要在同一级别的缩进。- 将
df1
附加到lst2
不会 return 任何东西,因此没有必要将其分配给df2
。
构建此列表的另一种方法可能是编写一个函数,该函数 return 是给定 i
的数据框(或“空”),并在理解中使用它:
def dataframe_or_null(i):
try:
return pd.DataFrame(i.QID1)
except AttributeError:
return "null"
lst2 = [dataframe_or_null(i) for i in lst1]