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 字符集的区别:

https://stackoverflow.com/questions/30074492/what-is-the-difference-between-utf8mb4-and-utf8-charsets-in-mysql/30074553#30074553

 

 

方法二:替换为空字符串

数据添加到数据库时报错,原因是数据中含有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)

  

 

参考:

https://blog.csdn.net/zhu6201976/article/details/108413487

https://www.jianshu.com/p/49f7b815b195


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM