gpt4 book ai didi

sqlite - 在Twisted中为SQLite设置文本工厂

转载 作者:行者123 更新时间:2023-12-03 18:48:21 24 4
gpt4 key购买 nike

我正在尝试使用Twisted adbapi将二进制数据存储在sqlite数据库中。但是,当我运行查询以存储数据时,出现错误:

sqlite3.ProgrammingError: You must not use 8-bit bytestrings unless you use a text_factory that can interpret 8-bit bytestrings (like text_factory = str). It is highly recommended that you instead just switch your application to Unicode strings.


稍作搜索后,我找到了正常的sqlite连接的答案:

con = sqlite3.connect(...)
con.text_factory = str


但是,我找不到与扭曲的adbapi sqlite连接一起使用的等效设置:

dbpool = adbapi.ConnectionPool("sqlite3", "data.db", check_same_thread=False)


我将不胜感激任何帮助!

最佳答案

我想到了。为了在打开连接后对其进行更改,必须对ConnectionPool使用cp_openfun参数。以下代码有效:

def set_text_factory(conn):
conn.text_factory = str

dbpool = adbapi.ConnectionPool("sqlite3", "data.db", check_same_thread=False,
cp_openfun=set_text_factory)

关于sqlite - 在Twisted中为SQLite设置文本工厂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32894586/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com