1

SqlAlchemy を使用すると、次のエラーで失敗する文字列列がいくつかあります

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

4

1 に答える 1

2

あなたはすでに解決策を見つけました。そこに構築するものは、新しいタイプです。したがって、Column(String...)orの代わりにColumn(Unicode...)を行いますColumn(CoercedString...)

于 2013-08-25T22:57:28.800 に答える