2017-06-01 6 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

列が持っているものは何でもaffinity

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

はい、しかし 'None'は' 'None''になります - ' 'None''という文字を含むセルから' 'NULL''セルを区別することはできません - これは私が今やっていることです私は 'NULL'セルに遭遇しません。 – skyking

0

SQLiteの格納値を試してみてください。

数値を使用したくない場合は、datetimeではなくtextを使用しないでください。

関連する問題