2017-06-01 56 views
0

我想从使用python3的sqlite3数据库中读取数据,它看起来像它试图变得聪明并将整列看起来像一个整数类型。我不希望这样(如果我正确的话,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

尝试

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

是的,但是'None'会变成''None'' - 所以我无法区分包含文字“None”的单元格中的“NULL”单元格 - 但这是我现在所做的,希望我不会遇到'NULL'单元格。 – skyking

0

SQLite的存储值在任何affinity该列。

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

相关问题