好程序员Python培训分享简述fetchone()函数

本文介绍了在Python中操作MySQL时遇到fetchone()函数报'NoneType' object is not subscriptable错误的问题。错误原因在于当查询结果只有一行时,不能重复调用fetchone()。解决方案是先存储fetchone()的结果再进行比较。同时,总结了fetchone()和fetchall()的用法。
摘要由CSDN通过智能技术生成

fetchone()函数报’NoneType’ object is not subscriptable的错误今天有人向我请教一道python操作mysql的题,我也是差一点掉坑里去了。题是这样的:python操作数据库,实现用户的注册登陆功能。其中最主要的是数据库的存入和读取。
其中一段代码如下:
#查询与用户名对应的密码
sql = “select hash_password from user where username =’{}’”.format(self.username)
self.cursor.execute(sql)
#输出查询结果
print(self.cursor.fetchone()[0])
print(self.passwd)
#对比,查询结果与加密后的密码
if self.cursor.fetchone()[0] == self.passwd:
print(‘登录成功’)
else:
print(‘请输入正确的密码’)
乍一看没什么错,但是执行报错了,
e10adc3949ba59abbe56e057f20f883e
e10adc3949ba59abbe56e057f20f883e
rl.login()
File “xxxxxx”, line 314,in login
if self.cursor.fetchone()[0] == self.passwd:
TypeError: ‘NoneType’ object is not subscriptable
怎么回事呢?明明输出的两个密码是一样的,怎么对比出错呢,而且报错也很奇怪,NoneType说明对比的两个值中有一个是None,self.passwd排除,那只能说self.cursor.fetchone()[0]是None

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值