如何使sqlite3模块不将列数据转换为整数类型

时间:2017-06-01 11:38:10

标签: python-3.x sqlite

我正在尝试使用python3从sqlite3数据库中读取数据,看起来它试图变得聪明并将看起来像整数的列转换为整数类型。我不希望这样(如果我说得对,sqlite3将数据存储为文本,无论如何)。

我已将数据库创建为:

sqlite> create table t (id integer primary key, foo text, bar datetime);
sqlite> insert into t values (NULL, 1, 2);
sqlite> insert into t values (NULL, 1, 'fubar');
sqlite> select * from t;
1|1|2
2|1|fubar

并尝试使用以下方式阅读:

db = sqlite3.connect(dbfile)

cur = db.cursor()

cur.execute("SELECT * FROM t")

for l in cur:
    print(t)

db.close()

输出如下:

(1, '1', 2)
(2, '1', 'fubar')

但我希望/想要像

这样的东西
('1', '1', '2')
('2', '1', 'fubar')

(绝对是最后一栏)

2 个答案:

答案 0 :(得分:0)

尝试

for l in cur:
    print((str(x) for x in t))

答案 1 :(得分:0)

SQLite将值存储在列中的affinity列中。

如果您不想拥有数字,请不要使用datetime,而是使用text