Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >我想要例外处理‘列表索引超出范围。’

我想要例外处理‘列表索引超出范围。’
EN

Stack Overflow用户
提问于 2012-08-10 05:15:45
回答 6查看 382.5K关注 0票数 143

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

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

问题是,有些HTML有不同的格式(而且它们没有我想要的数据)。

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

例如,我有这样的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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添加到列表中。

出现的错误如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
list index out of range.

我所做的就是添加这样的几行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if not dlist[1]:  
   newlist.append('null')
   continue

但这不管用。它仍然显示错误:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
list index out of range.

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

有什么建议吗?任何帮助都是很棒的!

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-08-10 05:17:13

处理异常是要走的路:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
try:
    gotdata = dlist[1]
except IndexError:
    gotdata = 'null'

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

票数 333
EN

Stack Overflow用户

发布于 2012-08-10 05:17:43

您有两个选项;要么处理异常,要么测试长度:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if len(dlist) > 1:
    newlist.append(dlist[1])
    continue

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
try:
    newlist.append(dlist[1])
except IndexError:
    pass
continue

如果经常没有第二项,则使用第一项;如果有时没有第二项,则使用第二项。

票数 46
EN

Stack Overflow用户

发布于 2012-08-10 05:22:06

三元就够了。改变:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
gotdata = dlist[1]

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
gotdata = dlist[1] if len(dlist) > 1 else 'null'

这是一种简短的表达方式。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if len(dlist) > 1:
    gotdata = dlist[1]
else: 
    gotdata = 'null'
票数 30
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11902458

复制
相关文章
例外处理
• 如果希望掌控意外,就需要在可能出错误的地方设置陷阱捕捉错误:try: # 为缩进的代码设置陷阱,except: # 处理错误的代码,else: # 没有出错执行的代码,finally: # 无论出错否,都执行的代码。
陆勤_数据人网
2020/10/23
8170
例外处理
BUG-索引超出范围
小心一点 System.ArgumentOutOfRangeException:“Index was out of range. Must be non-negative and less than the size of the collection.”
用户9857551
2022/06/28
1.4K0
BUG-索引超出范围
例外
关于管理,每家公司都不一样,每个国家都不一样。中国式的管理有其明显的特点,我们不可忽视。读历史,启发思维!
崔文远TroyCui
2019/02/26
4890
Python面试题目之列表取值超出范围
# 下面列表取值超出范围,会报错还是有返回值: L1 = ['1','2','3','4','5','6',] print(L1[10]) print(L1[10:]) 第一个打印会报错: 第二个打
Jetpropelledsnake21
2019/02/15
1K0
也说CSS之not:为样式加入例外处理
使用Octopress作为日常的博客发布工具,在加入多说评论的时候遇到了一个问题,顺带接触了css中的not选择,用来将某些Css选择器加入例外,不应用指定的css样式。
技术小黑屋
2018/09/04
9580
【Python】列表 List ② ( 使用下标索引访问列表 | 正向下标索引 | 反向下标索引 | 嵌套列表下标索引 | 下标索引越界错误 )
在 Python 列表 List 中的每个 数据元素 , 都有对应的 位置下标索引 ,
韩曙亮
2023/10/11
5340
【Python】列表 List ② ( 使用下标索引访问列表 | 正向下标索引 | 反向下标索引 | 嵌套列表下标索引 | 下标索引越界错误 )
【Python】列表 List ② ( 使用下标索引访问列表 | 正向下标索引 | 反向下标索引 | 嵌套列表下标索引 | 下标索引越界错误 )
在 Python 列表 List 中的每个 数据元素 , 都有对应的 位置下标索引 ,
韩曙亮
2023/10/11
9700
【Python】列表 List ② ( 使用下标索引访问列表 | 正向下标索引 | 反向下标索引 | 嵌套列表下标索引 | 下标索引越界错误 )
列表长度与索引
借助llength命令可获取列表的长度(列表所包含的元素的个数,不难发现很多跟列表相关的命令都是以英文单词l(其大写为L)开头的)。图1显示列表a的长度为3。
Lauren的FPGA
2019/10/30
1.5K0
微信小程序----全国机场索引列表(MUI索引列表)
效果展示图 实现的原理 '当前选择机场’和右侧的导航栏采用的是固定定位; 左侧的展示窗口的滚动采用的是scroll-view组件; 选择中的字母提示是自己WXSS样式制作。 WXML <view cl
Rattenking
2021/02/01
9620
微信小程序----全国机场索引列表(MUI索引列表)
利用虚拟列表改造索引列表(IndexList)
在一个倡导“快速开发”的团队中,交付日期往往是衡量工作的第一标准。而遇到问题的解决方式也会偏暴力,暴力的方式往往大脑都会厌恶和失声,尤其是在面试官问开发过程中的难点的时候更是无法回答,只能无底气的回一句“感觉开发过程很顺利,并没有碰到什么难以解决的问题。”。
玖柒的小窝
2021/10/19
1.5K0
利用虚拟列表改造索引列表(IndexList)
躺平不是我想要的生活!
这不是一个对程序员友好的话题,当局者迷,躺平也不是这个社会青年人该有的态度,一个工作10多年的人居然说自己不年轻,多少显得滑稽,也说明IT这个行业对老人是多么的不友好!思维的懒惰,和身体的勤奋,往往让我们继续选择原地踏步,问题依旧在,得不到改变,想的也不是特别深入,先抛出来,记下来,或许下次谈起,也就能找到出路了!
呱牛笔记
2023/05/02
2590
躺平不是我想要的生活!
小程序索引列表排序
在小程序中,会有一些需求,常常会有一些按字母A-Z排序,写过一篇关于vue的字母排序,点击这里查看,今天写一篇关于小程序字母排序的案例,效果展示如下
小周sir
2019/09/23
1.7K0
小程序索引列表排序
歪?我想要一个XXE。
0x00 背景 近期看到OWASP TOP 10 2017 版中添加了XXE的内容便对XXE的一些知识进行梳理和总结,XXE可以使用例如http,file等协议,所以可以利用支持的协议进行内网探测和内网入侵,这部分的内容后续在SSRF中补充。 要点:libxml2.9.1及以后,默认不解析外部实体。测试的时候window下使用的是php5.2(libxml Version 2.7.7 ), php5.3(libxml Version 2.7.8)。Linux中需要将libxml低于libxml2.9.1
漏斗社区
2018/03/28
1.5K0
歪?我想要一个XXE。
SAP MRP例外信息详解
例外信息总计有八类,以下分类讨论: 第一类: 69:BOM组件可能是递归的,即自己的子集中包括了自己。 02:订单 创建日期在过去,可能是没有及时处理,这个建议表明希望计划员尽快转化计划订单。 05:采购 申请或者采购订单的创建日期落在了过去,就会显示该例外。
用户5495712
2019/08/06
2.7K0
vue删除数组中某一元素_数组索引超出范围
在前端开发中,我们经常需要对数组进行操作,增删改是经常的事情,那我们js中该如何删除指定的下标元素呢????
全栈程序员站长
2022/09/22
1.7K0
vue删除数组中某一元素_数组索引超出范围
Python 索引与切片之列表
索引与切片之列表 什么是索引 字符串,列表和元组 从最左边记录的位置就是索引 索引用数字表示,起始从0开始 字符串,列表(元组)的最大索引是他们的长度-1 什么是切片 索引用来对单个元素进行访问,切片则对一定范围内的元素进行访问 切片通过冒号在中括号内把相隔的两个索引查找出来 [0:10] 切片规则为: 左含右不含 列表的索引,获取与修改 list[index] = new_item为索引更改变量 数据的修改只能在存在的索引范围内 列表无法通过添加新的索引的方式赋值 list.index(item)查找元
Zkeq
2022/05/18
6000
曾经,我以为我很懂MySQL索引
  在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。
陈哈哈
2020/09/11
7990
曾经,我以为我很懂MySQL索引
你想要拥有自己的搜索引擎吗?
在现代开发的应用系统中,无论是常规的web应用,还是近几年兴起的app应用,或者是风头正热的大数据应用,都离不开搜索这一功能,搜索也是在应用系统中使用频率最高的一个功能,比如普通的商城系统中的商品搜索或者一些资源的站内搜索等。
yuanyi928
2020/09/14
6000
我秃了!唯一索引、普通索引我该选谁?
提到唯一索引和普通索引,相信大家都不陌生,当同事小姐姐问你这俩有什么区别时?或许你会脱口而出:“这还用问?见名知意啊,一个是允许字段重复,一个不允许存在重复数据!”
陈哈哈
2021/12/31
3040
我秃了!唯一索引、普通索引我该选谁?
Selenium处理下拉列表
在执行Selenium自动浏览器测试时,很多时候需要处理下拉菜单。下拉菜单通常用于表单中,在节省空间和防止用户在表单中选择错误的选项时非常有用。因此在测试任何网站或访问表单时,如何使用Selenium处理下拉列表显得尤为重要。
FunTester
2020/07/22
6.1K0

相似问题

异常处理-列表索引超出范围

25

如何处理列表索引超出范围?

434

处理IndexError:超出范围的列表索引

16

我想要linux命令的例外

10

c#中的“索引超出范围”例外

23
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文