python Incorrect string value: '\\xF0\\x9F\\xA6\\x86\\xF0\\x9F...' for column
方法一:修改数据库字符集

将数据库中表的字符集改为 utf8mb4 排序规则改为 utf8mb4_general_ci
数据库连接中的字符集也要修改为 utf8mb4:
mysqldb = pymysql.connect(host="x.x.x.x", port=3306, user="user", password="password", database="db", charset="utf8mb4")
参考:
https://blog.csdn.net/weixin_37557729/article/details/107012034
Mysql中 utf8 与 utf8mb4 字符集的区别:
方法二:替换为空字符串
数据添加到数据库时报错,原因是数据中含有emoji表情,将其替换为空字符串即可
import re
compile_emoji = re.compile('['
'\U0001F300-\U0001F5FF' # 🌀 --> 🗿
'\U0001F900-\U0001F9FF' # 🤀 --> 🧿
'\U0001F600-\U0001F64F' # 😀 --> 🙏
'\U0001F680-\U0001F6FF' # 🚀-\U0001f6ff
'\u2600-\u26FF' # ☀ --> ⛿
'\u2700-\u27BF' # ✀ --> ➿
'\u24C2' # Ⓜ
'\U0001F1E6-\U0001F1FF' # 🇦-🇿
'\U0001F170-\U0001F171' # 🅰-🅱
'\U0001F17E-\U0001F17F' # 🅾-🅿
'\U0001F18E' # 🆎
'\U0001F191-\U0001F19A' # 🆑-🆚
# '\u0023' # #
# '\u002A' # *
# '\u0030-\u0039' # 0 --> 9
'\u2194-\u2199' # ↔ --> ↙
'\u21A9-\u21AA' # ↩ --> ↪
'\u2B05-\u2B07' # ⬅ --> ⬇
'\u2B1B' # ⬛
'\u2B1C' # ⬜
'\u2B50' # ⭐
'\u2B55' # ⭕
'\u2934-\u2935' # ⤴ --> ⤵
'\u3030' # 〰
'\u303D' # 〽
'\u3297' # ㊗
'\u3299' # ㊙
'\U0001F201-\U0001F202' # 🈁 --> 🈂
'\U0001F21A' # 🈚
'\U0001F22F' # 🈯
'\U0001F232-\U0001F23A' # 🈲 --> 🈺
'\U0001F250-\U0001F251' # 🉐 --> 🉑
'\u203C' # ‼
'\u2049' # ⁉
'\u25AA' # ▪
'\u25AB' # ▫
'\u25B6' # ▶
'\u25C0' # ◀
'\u25FB-\u25FE' # ◻ --> ◾
'\u00A9' # ©
'\u00AE' # ®
'\u2122' # ™
'\u2139' # ℹ
'\U0001F004' # 🀄
'\U0001F0CF' # 🃏
'\u231A' # ⌚
'\u231B' # ⌛
'\u2328' # ⌨
'\u23CF' # ⏏
'\u23E9-\u23F3' # ⏩ --> ⏳
'\u23F8-\u23FA' # ⏸-⏺
']',
re.UNICODE)
ret = compile_emoji.sub('', emoji_value)
参考:

浙公网安备 33010602011771号