首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将字符串插入到SQLAlchemy Unicode列的正确方法

将字符串插入到SQLAlchemy Unicode列的正确方法
EN

Stack Overflow用户
提问于 2011-04-21 02:57:35
回答 2查看 7.6K关注 0票数 13

我有一个带有Unicode列的SQLAlchemy模型。我有时会插入Unicode值(u‘values’),但有时也会插入ASCII字符串。做这件事最好的方法是什么?当我插入带有特殊字符的ASCII字符串时,我收到以下警告:

代码语言:javascript
复制
SAWarning: Unicode type received non-unicode bind param value ...

我该如何避免这种情况?插入不同类型的字符串的正确方式是什么?

EN

回答 2

Stack Overflow用户

发布于 2011-04-21 20:20:58

有以下几个选项:

仅使用warnings.simplefilter('ignore', sqlalchemy.exc.SAWarning).

  • Disable禁用所有unicode警告此警告使用更具体的按模块和行或消息的过滤规范,例如warnings.filterwarnings('ignore', '^Unicode type received non-unicode bind param value', sqlalchemy.exc.SAWarning).

  • Use type.

  • Rethink而不是
  1. SQLAlchemy String(convert_unicode=True),并更改您的代码以使用unicode,即使对于Unicode字符串也是如此。
票数 5
EN

Stack Overflow用户

发布于 2013-09-06 14:14:41

你应该这样定义你的表类和构造函数:

代码语言:javascript
复制
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"

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5735242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档