使用 SqlAlchemy,我有一些字符串列失败,并显示
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 356: ordinal not in range(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
类。
最佳答案
您已经找到了解决方案。你在那里 build 的是一种新类型。因此,您可以使用 Column(CoercedString...)
,而不是 Column(String...)
或 Column(Unicode...)
。
关于python - 是否可以使用 SqlAlchemy 自动解码字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18401344/