是否可以使用SqlAlchemy自动解码字符串?

时间:2013-08-23 11:07:09

标签: python unicode sqlalchemy

使用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类。

1 个答案:

答案 0 :(得分:2)

您已经找到了解决方案。你在那里建造的是一种新型。因此,Column(String...)Column(Unicode...)代替Column(CoercedString...)