在我的表结构中:
结果:
我希望将bool存储为1字节的INTEGER,当读取记录时,我只想将它们转换为Python bool(代码的其他部分需要bool而不是int)。 SQLite是将它们存储为字符串,还是在调用myfunc之前将它们转换为字符串?为什么?
附:我尝试使用
... disabled BOOLEAN, ...
连接数据库时:
db = sqlite3.connect(f, detect_types=sqlite3.PARSE_DECLTYPES)
sqlite3.register_converter("BOOLEAN", myfunc)
我这样插入一条记录:
INSERT INTO mytable (disabled, ...) VALUES (:disabled, ...)
参数字典中包含disabled: False。
当我读取该记录时,将调用myfunc函数来转换布尔类型:
def myfunc(x):
print x, type(x)
结果:
0,<type 'str'>
(当我想要False时当然会评估为True)我希望将bool存储为1字节的INTEGER,当读取记录时,我只想将它们转换为Python bool(代码的其他部分需要bool而不是int)。 SQLite是将它们存储为字符串,还是在调用myfunc之前将它们转换为字符串?为什么?
附:我尝试使用
sqlite3.register_adapter(bool, int)
,但没有成功。