使用SqlAlchemy,我有一些
失败的String列UnicodeEncodeError:'ascii'编解码器无法对位置356中的字符u'\ xe9'进行编码:序号不在范围内(128)
因为它们不是Unicode。
我知道通过执行my_string.decode('cp1252'),它可以工作,但是可以定义一个方法来自动解码从数据库返回的所有字符串。
使用它,调用my_model.my_string将在返回并解码之前进行处理。
我查看了http://docs.sqlalchemy.org/en/rel_0_8/core/types.html#coercing-encoded-strings-to-unicode,这似乎正是我正在寻找的,但我不知道在哪里告诉SqlAlchemy使用CoerceUTF8
类。
答案 0 :(得分:2)
您已经找到了解决方案。你在那里建造的是一种新型。因此,Column(String...)
或Column(Unicode...)
代替Column(CoercedString...)
。