2011-11-27 62 views
1

我的代码中的错误点,看起来像这样列表索引必须是整数STR蟒蛇SQLITE3

for i in array1: 
    cursor.execute("insert into Recipe values (?,?,?)",(array1[i], array2[i], array3[i])) 
    db.commit() 

数组的内容是字符串,那么我将如何把阵列到sqlite3的表?

+1

你真的有三排?为什么外层循环只是其中的一个迭代? –

+0

他们都是相同的大小,我只想计数 – quantumdisaster

+0

你是否需要索引值的任何东西,或只是为了迭代?如果只是迭代,请考虑使用'zip'或'itertools.izip'。 –

回答

1

使用zip()所有三个数组遍历在一起:

for row in zip(array1, array2, array3): 
    cursor.execute("insert into Recipe values (?,?,?)", row) 
db.commit() 
+0

这是完美的...几乎,我只是得到这个错误Traceback(最近呼叫最后): 文件“testread.py”,第21行,在 cursor.execute(“insert into Recipes values(?,? ?)“,row) sqlite3.ProgrammingError:除非使用可解释8位字节串的text_factory(如text_factory = str),否则不得使用8位字节串。强烈建议您改为将应用程序切换到Unicode字符串。有任何想法吗? – quantumdisaster

+0

@quantumdisaster:我认为你已经阅读过http://stackoverflow.com/questions/2838100/pysqlite2-programmingerror-you-must-not-use-8-bit-bytestrings,它没有帮助? – Johnsyweb

+0

对,它给了我一个关于.decode不是行 – quantumdisaster

相关问题