SQLAlchemy和python - 从DB检索非ascii字符

时间:2016-06-09 13:45:47

标签: python unicode sqlalchemy

我的问题: 为什么我不能从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中?

1 个答案:

答案 0 :(得分:1)

根据docs,您应该在连接字符串中指定编码:

e = create_engine("mysql+pymysql://scott:tiger@localhost/test?charset=utf8")