简单解决Python pymysql数据插入中UnicodeEncodeError: 'latin-1' codec can't encode characters in position的问题

UnicodeEncodeError: 'latin-1' codec can't encode characters in position 101-103: ordinal not in range(256)
最近在学习爬虫,将数据爬取以后想存入Mysql数据库,但是运行时遇到了以上错误。


原因是pymysql库在处理mysql语句时,默认的编码方式是'latin-1',这种编码方式能识别的字符是有限的。

解决办法: 用文本编辑器打开Python安装目录下\Lib\site-packages\pymysql\connection.py,  
              搜索DEFAULT_CHARSET= 'latin1' ,将 'latin1' 改成 'utf8',问题就解决了。


这个错误是由于pythonpymysql模块在连接MySQL服务器时发生了超时错误。根据提供的引用内容,有几种可能的解决方法可以尝试: 1. 确保目标MySQL服务器的IP地址和端口号是正确的。如果IP地址或端口号不正确,连接将无法建立。 2. 如果你在连接远程Linux服务器上的MySQL数据库时遇到这个问题,可能是由于Linux服务器的防火墙导致的。尝试关闭Linux服务器上的防火墙,可以通过在虚拟机上打开终端并输入命令"firewall-cmd --state"来查看防火墙状态,如果显示为running,则表示防火墙正在运行。关闭防火墙可能需要管理员权限。 3. 还有一种解决方法是在连接远程主机的数据库时使用SSH验证。可以通过提供正确的主机地址、用户名和密码来初始化一个SSH连接,然后再连接到服务器上的数据库。根据提供的代码,可以看到一个示例的初始化方法。你可以根据自己的需求和环境进行相应的修改。 请注意,这些解决方法只是常见的解决方法之一,具体解决方法可能因情况而异。如果问题仍然存在,请确保你的网络连接正常,并且可以在目标服务器上正常访问MySQL服务。如果问题仍然存在,请参考pymysql模块的官方文档或寻求相关支持。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [pymysql.err.OperationalError: (2003, “Can‘t connect to MySQL server on ‘xxx.xxx.xxx.x‘ (timed ...](https://blog.csdn.net/xiaommxhxxl/article/details/123018307)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [解决python连接mysql报错pymysql.err.OperationalError: (2003, “Can‘t connect to MySQL server on ...](https://blog.csdn.net/WOSHIBEIZHE/article/details/118164143)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值