键入' exceptions.ValueError'

时间:2014-12-02 09:19:17

标签: python

尝试使用以下代码迭代以下列表时出现Value错误:

for (row,num) in (cur.fetchall(),range(1,cur.rowcount+1)):

列表:

(((2L, 0L, 'You must install a MySQL driver before doing anything. UNlike PHP, only the SQLLite driver is installed by'), (3L, 0L, "default with Python. The most used package to do so is MySQLdb but it's hard to install it using"), (4L, 0L, 'easy_install'), (24L, 0L, ' eine Nachricht '), (25L, 0L, ' Das ging ja schnell '), (27L, 0L, ' Noch ein dicker Hund! ')), [1, 2, 3, 4, 5, 6])

第一个列表是一个包含元组的列表,第二个列表是一系列数字。

你能解释一下,为什么这不起作用?

2 个答案:

答案 0 :(得分:3)

按照你的要求编写,你重复的东西必须产生2元组 1 。但是,您首先得到的是cursor.fetchall个结果,然后是行计数列表,它们长度不超过2个......

您需要zip将它们放在一起才能正常运行:

for (row,num) in zip(cur.fetchall(),range(1,cur.rowcount+1)):

据说,python有一个内置函数,名为enumerate

for num, row in enumerate(cur.fetchall(), 1):

我猜想包括电池。 。

1 实际上,任何2项可迭代都可以解压缩。它没有 成为元组

答案 1 :(得分:2)

Zip它!

 for (row,num) in zip(cur.fetchall(),range(1,cur.rowcount+1)):