SQLite+SQLAlchemy+Python3:无法解码为UTF-8列

uxhixvfz  于 2023-04-21  发布在  SQLite
关注(0)|答案(1)|浏览(188)

我有一个SQLAlchemy模型,在一个Flask应用程序中,定义如下:

class Food(Model):
    __tablename__ = 'food'
    id = db.Column(db.Integer, primary_key=True)
    short_desc = db.Column(db.String(80))
    sci_name = db.Column(db.String(250))

我尝试使用预填充的SQLite数据库执行一个简单的查询,但当我调用Food.query.all()时,我收到错误:

(sqlite3.OperationalError) Could not decode to UTF-8 column 'food_sci_name' with text 'Actinidia chinensis �Zesy002� (Gold3)'

我试着将引擎text_factory更改为str,再更改为bytes,但这些更改都没有产生任何影响。

to94eoyn

to94eoyn1#

sci_name列包含一些text_factory不能转换的字符.默认的text_factorystr,你可以改变它:

engine = create_engine('sqlite:///some.db')
engine.connect().connection.text_factory = lambda x: x.decode('utf-8', errors='ignore')

相关问题