报错:
File "D:\ProgramData\Anaconda3\envs\learn3.5\lib\site-packages\pymysql\__init__.py", line 90, in Connect
return Connection(*args, **kwargs)
File "D:\ProgramData\Anaconda3\envs\learn3.5\lib\site-packages\pymysql\connections.py", line 659, in __init__
self.encoding = charset_by_name(self.charset).encoding
AttributeError: 'NoneType' object has no attribute 'encoding'
起因:
使用pymysql连接数据库,如下:
connection = pymysql.connect(host=host, port=int(port), user=username, password=password, db=db, charset='utf-8')
发现建立数据库连接时报错:
根据错误指向找到出错位置,调试如下图
继续执行,发现从这里开始一步一步的退出来了,报错
再次调试,在图片显示地方进入charser_by_name()函数,如图
仔细读代码,在看所提供的编码类型,才发现这里用的是【utf8】而不是【utf-8】
返回建立连接的代码语句,修改编码类型为utf8,再次运行,成功。
对于新手来说,严格根据提示,一步一步深入代码,很需要耐心。
一定在关键报错代码处搞清楚代码逻辑,一定能够找到错误出处。