Python 写入mysql 字符串类型报错

在尝试使用Python将数据从百度地图抓取并保存到MySQL时,遇到1366错误,提示字符串值不正确。问题出在MySQL无法识别4字节UTF-8编码的字符。解决方案是将数据库字段和连接字符集更改为utf8mb4,并确保Python连接设置也包含utf8mb4。如果需要,可以重启MySQL服务。
摘要由CSDN通过智能技术生成

1366, "Incorrect string value: '\\xF0\\x9F\\x87\\xA8\\xF0\\x9F...' for column 'nickName' at row 1"

问题描述:Python从百度地图抓取消息保存到MySQL数据中,对应数据库字段为varchar以及TEXT,字符编码utf-8。部分插入成功,部分插入失败,报错如下。 

error:1366, “Incorrect string value: ‘\xF0\x9F\x98\x81’

是因为mysql不能识别4个字节的utf8编码的字符,抛出了异常,这应该也是问题的根源。☺、��、类似于这种4个字节,将对应字符类型换成将对应的数据类型改为utf8mb4类型,同时连接类型也要改成utf8mb4_general_ci

--如果不管用,可以重启mysql服务

--Python链接写字符集为utf8mb4或者不写

 

conn = pymysql.connect(host="localhost", user="adam",

passwd="XXX",

db=db_name

# ,charset='utf8mb4'

<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值