【发布时间】:2017-08-14 09:50:47
【问题描述】:
我现在已经搜索了几个小时。我正在接收 Facebook 帖子,并希望在 python 中使用 SQLAlchemy 将它们解析为 mysql 数据库。 Facebook 帖子包括笑脸和一堆特殊字符。
SQLALCHEMY 数据库 URI 如下所示:
SQLALCHEMY_DATABASE_URI = "mysql+mysqldb://...?charset=utf8&use_unicode=0"
在提交到数据库之前,我还使用 utf8 进行编码:
string.encode("utf-8")
从这里的几个问题/答案测试我仍然遇到这个问题:
sqlalchemy.exc.OperationalError: (_mysql_exceptions.OperationalError) (1366, "不正确的字符串值:'\\xF0\\x9F\\x8C\\x9E\\xF0\\x9F...'
【问题讨论】:
-
您使用的是 Python 2?如果没有,don't use
use_unicodeat all。如果您希望获得可能的性能提升,请让 SQLAlchemy 为您处理编码,或者换句话说,不要手动编码。你的问题缺少mcve,所以很难说它到底发生在哪里,但这看起来像是某种双重转义的结果。而不是字节,你有字节转义序列的字符串表示(例如由错误处理程序反斜杠替换产生)。 -
感谢@IljaEverilä 的评论。是的,我正在使用 2.7 会将该信息添加到我的问题中,并尝试为 mcve 改进它。如果我不对字符串进行编码,我也会遇到带有双引号的解析错误。
标签: python mysql utf-8 sqlalchemy mysql-python