我有一个带有Unicode列的SQLAlchemy模型。我有时会插入Unicode值(u‘values’),但有时也会插入ASCII字符串。做这件事最好的方法是什么?当我插入带有特殊字符的ASCII字符串时,我收到以下警告:
SAWarning: Unicode type received non-unicode bind param value ...我该如何避免这种情况?插入不同类型的字符串的正确方式是什么?
发布于 2011-04-21 20:20:58
有以下几个选项:
仅使用warnings.simplefilter('ignore', sqlalchemy.exc.SAWarning).
warnings.filterwarnings('ignore', '^Unicode type received non-unicode bind param value', sqlalchemy.exc.SAWarning).
String(convert_unicode=True),并更改您的代码以使用unicode,即使对于Unicode字符串也是如此。发布于 2013-09-06 14:14:41
你应该这样定义你的表类和构造函数:
class User(declarative_base()):
_tablename__ = 'user'
name = Column(Unicode(200, convert_unicode=False))
textfield = Column(UnicodeText(convert_unicode=False))
user = Table('user', MetaData(),
Column('name', Unicode(200, convert_unicode=False), nullable=False),
Column('textfield', UnicodeText(convert_unicode=False), nullable=False),
)当然,您不应该忘记为create_engine function附加URI+"charset=utf8"
https://stackoverflow.com/questions/5735242
复制相似问题