Python sqlite3.register_converters()不会将double转换为Decimal

时间:2010-09-29 12:03:01

标签: python sqlite

在sqlite3中有这个表:

create table t(d double)  

在python中,代码是:

sqlite3.register_converter('double', Decimal)
...
for d, in connection.execute('select d from t limit 1'):
    print type(d)

打印结果为:<type 'float'>
知道为什么吗?

1 个答案:

答案 0 :(得分:1)

使用可选参数连接到数据库:

detect_types=sqlite3.PARSE_DECLTYPES

即:

conn = sqlite3.connect('database.db', detect_types=sqlite3.PARSE_DECLTYPES)

然后像你一样继续。它应该工作。

请参阅:

http://www.gossamer-threads.com/lists/python/python/627047