文章内容
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()
不检查字段之后就可以解决问题了。
黄兵个人博客原创。
评论列表