我的问题: 为什么我不能从sqlalchemy db中检索非ascii字符到python?
更详细: 我的sqlalchemy数据库(例如Umlaut)中有一个带有非ascii字符的条目。 当我尝试使用以下方法检索此条目时
q=self.session.query(Table_Name).filter(Table_Name.id=='some id')
q.all()
我收到以下错误:
UnicodeEncodeError: 'ascii' codec can't encode characters in position
我通过将条目解码为UTF-8 将条目插入数据库来解决它。
然而我想知道 - 为什么这个错误出现了? 是否有选项可以将已经编码为unicode的条目(例如,而不是bytechar \ ascii)提取到python中?
答案 0 :(得分:1)
根据docs,您应该在连接字符串中指定编码:
e = create_engine("mysql+pymysql://scott:tiger@localhost/test?charset=utf8")