小编典典

我想例外处理“列表索引超出范围”。

python

我正在使用 BeautifulSoup 并解析一些HTML。

我从每个HTML (使用for循环)中 获取特定数据,并将该数据添加到特定列表中。

问题是,某些HTML具有不同的格式 (并且它们中没有我想要的数据)

因此,我试图使用异常处理并将值添加null到列表中 (我应该这样做,因为数据顺序很重要。)

例如,我有一个类似的代码:

soup = BeautifulSoup(links)
dlist = soup.findAll('dd', 'title')
# I'm trying to find content between <dd class='title'> and </dd>
gotdata = dlist[1]
# and what i want is the 2nd content of those
newlist.append(gotdata)
# and I add that to a newlist

并且某些链接没有任何链接<dd class='title'>,因此我想要做的是将字符串添加null到列表中。

错误出现:

list index out of range.

我尝试做的是添加一些像这样的行:

if not dlist[1]:  
   newlist.append('null')
   continue

但这行不通。它仍然显示错误:

list index out of range.

我该怎么办?我应该使用异常处理吗?还是有更简单的方法?

有什么建议?任何帮助都将非常棒!


阅读 205

收藏
2020-12-20

共1个答案

小编典典

处理异常的方法是:

try:
    gotdata = dlist[1]
except IndexError:
    gotdata = 'null'

当然,你也可以检查len()dlist; 但是处理异常更为直观。

2020-12-20