在我的表模式中:
... disabled BOOLEAN, ...
连接到数据库时:
db = sqlite3.connect(f, detect_types=sqlite3.PARSE_DECLTYPES)
sqlite3.register_converter("BOOLEAN", myfunc)
我像这样插入一条记录:
INSERT INTO mytable (disabled, ...) VALUES (:disabled, ...)
连同包含disabled的参数dict一起:False。
当我读回该记录时,将调用myfunc来转换BOOLEAN类型:
def myfunc(x):
print x, type(x)
结果:(0, <type 'str'> 当我想为False时,当然评估为True)
我希望将布尔值存储为1字节的整数,我只想在读取记录时将它们转换为Python布尔值(代码的其他部分期望布尔值不是整数)。SQLite是在调用myfunc之前将它们存储为字符串,还是将它们转换为字符串?为什么?
PS-我尝试使用sqlite3.register_adapter(bool, int),但无济于事。
芜湖不芜
浮云间
相关分类