文章内容
2018/12/18 18:42:35,作 者: 黄兵
'NoneType' object has no attribute 'xxxx'
最近在使用SQLAlchemy查询数据的时候报如下错误:
'NoneType' object has no attribute 'xxxx'
看一下代码的写法:
get_sms_count = SMSCount.query.filter_by(PhoneNumber_id=number).first()
if get_sms_count.SMS_Count is None:
msg_count = db.session.query(sqlalchemy.func.count(SMS_Receive.id))\
.filter(and_(SMS_Receive.IsShow == True, SMS_Receive.PhoneNumber_id == number))\
.scalar()
sms_count_info = SMSCount(PhoneNumber_id=number, SMS_Count=msg_count)
db.session.add(sms_count_info)
db.session.commit()首先是获取一条数据,如果当前数据为空,那么查询他的字段,就会报如上错误。
我们看看调试的结果:

出现问题的原因:
get_sms_count数据为空,if get_sms_count.SMS_Count(表没有数据,查询字段)会报这个错误:
'NoneType' object has no attribute 'xxxx'
解决方案:
get_sms_count = SMSCount.query.filter_by(PhoneNumber_id=number).first()
if get_sms_count is None:
msg_count = db.session.query(sqlalchemy.func.count(SMS_Receive.id))\
.filter(and_(SMS_Receive.IsShow == True, SMS_Receive.PhoneNumber_id == number))\
.scalar()
sms_count_info = SMSCount(PhoneNumber_id=number, SMS_Count=msg_count)
db.session.add(sms_count_info)
db.session.commit()不检查字段之后就可以解决问题了。
黄兵个人博客原创。
评论列表