python脚本合集:TypeError

1. list index out of range

之前查看mysql数据库查询结果,因为这个结果统计的是一个文件的内容情况,一个文件内相关信息均被存储为一行记录,不方便查看,故写python脚本连接mysql数据,获取查询结果,方便查看。
(1).mysql数据库查询结果展示:
在这里插入图片描述
所需要的结果在插入mysql时相关数据被当成一个列表存储在一行,查看不易。
(2).写python脚本实现相关的功能并运行该脚本后有报错信息出现。
在这里插入图片描述
报错信息为:IndexError :list index out of range
直接在mysql查看这部分的查询结果,并没有发现超出长度的列表结果,上网查了一下,了解到造成这个错误的有两个原因:
①查询结果中确实有超出长度的列表;
②查询结果中有空的列表;
返回mysql数据库查看结果,发现是有空列表出现,故修改一下对应的列表处理代码块
原代码为

lis=[]
if len(lis) >1:
	print(lis[1])
else :
	print (lis[0])

修改后代码为

lis=[]
try :
	if len(lis)>1:
		print(lis[1])
except IndexError :
	print(lis[0])

使用try except else 函数后,果然代码不报IndexError这个错误了,个人觉得是捕捉错误并跳过错误,让程序继续执行。

2. TypeError : excepted a character buffer objecter

今天想要把查询结果输出到一个文本中去,在输出的时候报了一个错误:
“TypeError : excepted a character buffer objecter”
查看代码,原来是自己忽略了输出的结果为元组类型,本身中含有其他类型的字符,不能直接输出到指定的文本中,需要将输出结果类型转换为字符串类型才可输出

for tup in result:
	f.write(list(tup)[0])    #将元组转换为列表后取索引为0的元素
	#f.write(tup)     #将tup直接输出时,就报了TypeError这个错误
f.close()
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值