文章内容

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

不检查字段之后就可以解决问题了。


黄兵个人博客原创。

转载请注明出处:黄兵个人博客 - 'NoneType' object has no attribute 'xxxx'

分享到:

发表评论

评论列表