2012-06-12 72 views
1

這裏是我的代碼(目前):爲什麼沒有東西寫入數據庫?

conn = sqlite3.connect(db) 
conn.text_factory = str #bugger 8-bit bytestrings 
cur = conn.cursor() 

reader = csv.reader(open(csvfile, "rU"), delimiter = '\t') 
for Number, Name, Message, Datetime, Type in reader: 

    # populate subscriber table 
    if str(Number)[:1] == '1': 
     tmpNumber = str(Number)[1:] 
     Number = int(tmpNumber) 
    cur.execute('INSERT OR IGNORE INTO subscriber (name, phone_number) VALUES (?,?)', (Name, Number)) 

cur.close() 
conn.close() 

下面是CSV文件中的一些樣本數據(文件中製表符分隔):

Number  Name  Message   Date/Time    Type 
16665551212 Jane Doe message one  11/23/2011 6:34:44 AM Incoming 
16665551212 Jane Doe message two  11/23/2011 4:53:21 PM Incoming 

代碼的執行沒有任何錯誤,只什麼都不寫入數據庫。爲什麼是這樣?

回答

4

您需要提交修改:conn.commit()

如果你不想使用交易可言,在「自動提交」模式,即工作中,在connect()調用中使用isolation_level=None。但是,這通常是一個壞主意。

+0

工作,謝謝! – Dan

+0

@ DanO'Day如果它的工作...接受答案 – beoliver

+2

我不能更早,這讓我等了很多分鐘,那時我通常忘了。也許系統不應該需要這樣的等待?即便如此,我現在已經接受了。 – Dan

相關問題