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()