2014-02-17 117 views
1

我想找出一種方法來將二維數組(使用python)放入sqlite數據庫。我的陣列:多維數組到python數據庫

['hello', 'hello', 'hello'], ['hello', 'hello', 'hello'] 

我想要的是'hello'的每個元組都會有一個新行,每個'hello'是它自己的屬性。我不確定我想要做什麼甚至可能(我希望是這樣)。我嘗試以下一些其他職位,但我不斷收到錯誤:

sqlite3.InterfaceError: Error binding parameter 0 - probably unsupported type. 

有誰知道如何插入一個多維數組到一個SQLite數據庫?任何幫助,將不勝感激。這裏是我的代碼:

import sqlite3 

array2d = [['hello' for x in xrange(3)] for x in xrange(3)] 

var_string = ', '.join('?' * len(array2d)) 

conn = sqlite3.connect('sample.db') 
c = conn.cursor() 

c.execute('''CREATE TABLE sample (Name TEXT, Line_1 TEXT, Line_2 TEXT)''') 

query_string = 'INSERT INTO sample VALUES (%s);' % var_string 

c.execute(query_string, array2d) 

回答

1

使用cursor.executemany() method一氣呵成插入行的序列:

query_string = 'INSERT INTO sample VALUES (?, ?, ?)' 

c.executemany(query_string, array2d) 
conn.commit() 

不要忘記conn.commit()交易。

爲了演示的目的,我還沒有爲格式化SQL參數而煩惱,您無論如何都不想這麼做,因爲您的列數固定不變(來自CREATE TABLE定義)。

+0

感謝您的回覆。我擺脫了錯誤信息,但是當使用SQLite數據庫瀏覽器查看sample.db時,數據字段爲空。 – David

+0

您還需要提交。 :-) –

+0

當然可以。謝謝。 – David