我正在尝试使用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')
(绝对是最后一栏)
答案 0 :(得分:0)
尝试
for l in cur:
print((str(x) for x in t))
答案 1 :(得分:0)
SQLite将值存储在列中的affinity列中。
如果您不想拥有数字,请不要使用datetime
,而是使用text
。