已解决AttributeError: ‘NoneType‘ object has no attribute ‘upper‘

已解决AttributeError: ‘NoneType’ object has no attribute ‘upper’





文章目录

  • 报错代码
  • 报错翻译
  • 报错原因
  • 解决方法
  • 帮忙解决





报错代码



粉丝群一个小伙伴用python读取数据库的数据,然后调用upper()方法,但是发生了报错(当时他心里瞬间凉了一大截,跑来找我求助,然后顺利帮助他解决了,顺便记录一下希望可以帮助到更多遇到这个bug不会解决的小伙伴),报错代码如下:

TI1 = TI.upper().replace(" ",'')


报错信息截图如下所示

已解决AttributeError: ‘NoneType‘ object has no attribute ‘upper‘_第1张图片




报错翻译



报错信息翻译如下

属性错误:“NoneType”对象没有属性“upper”



报错原因



报错原因

string.lower() 是Python字符串内置的方法,用于转换 string 中所有大写字符为小写,而这个粉丝从数据库取的的字符串有为空的所以没法调用方法,TI类型打印如下:


None <class 'NoneType'> 

小伙伴们按下面的方法解决即可!!!



解决方法



1. 如果是从数据库读取数据:sql 语句增加where条件设置,字段不能为空

sql = "select TOP 1000 字段 表 where 字段 is not null"
   
cursor.execute(sql)
rows = cursor.fetchall()

2. 然后就判断字符串长度是否大于1,如果大于1才调用upper:

# 这里的TI换成自己定义的变量即可:
if len(TI) >1:
	TI1 = TI.upper().replace(" ",'')

帮忙解决

本文已收录于:《告别Bug专栏》,欢迎免费订阅

本专栏用于记录学习和工作中遇到的各种疑难编程Bug问题,以及粉丝群里小伙伴提出的各种问题,文章形式:报错代码 + 报错翻译 + 报错原因 + 解决方法,包括程序安装、运行程序过程中遇到的等等问题,博主心愿:让天下没有难学的编程,从此告别Bug!订阅专栏+关注博主后可私聊进全栈学习交流群帮忙解决问题,和小伙伴们交流学习,共同进步!!!

你可能感兴趣的:(《告别Bug》,python)