Traceback (most recent call last):IndexError: list index out of range解决方案

博客分享了一个Python文件操作实例,运行代码时出现索引超出范围的报错。经排查,并非真正的索引问题,而是数据中存在中文符号,导致无法正常读取,进而引发索引出错。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文件操作实例:

将日志文件2019-05-17的内容转换成字典样式放在列表中
1,abc,1001,特斯拉
2,bcd,1002,五菱宏光
3,def,1003,摩拜
4,ghj,1004,小黄车

{id:1,name:abc,phone:1001,car:特斯拉}

代码:

lst=[]
with open("2019-05-17", mode="r", encoding="utf-8") as f:
    for line in f:
        dic = {}  # 每行一个字典
        # 1,abc,1001,特斯拉
        ls = line.strip().split(",")  # 逗号切割
        dic['id'] = ls[0]
        dic['name'] = ls[1]
        dic['phone'] = ls[2]
        dic['car'] = ls[3]
        #print(dic)  # strip()去掉空白
        lst.append(dic)

print(lst)

在运行上面代码时,报错:

Traceback (most recent call last):
  File "E:/pycharm file/Python学习之路/知识回顾/文件的各种操作.py", line 138, in <module>
    dic['car'] = ls[3]
IndexError: list index out of range

虽然提示是索引超出范围,其实并没有,最后发现是数据的问题,出现中文的符号,导致不能读出来,索引出错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值