使用pymysql时utf8写成utf-8引起的错误

报错:

  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,再次运行,成功。
对于新手来说,严格根据提示,一步一步深入代码,很需要耐心。
一定在关键报错代码处搞清楚代码逻辑,一定能够找到错误出处。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值