0

python中的SQLite,在屏幕上打印,python 3.2.4

我有这个代码

cur.execute("SELECT * FROM Player")
while True:

    row = cur.fetchone()
    print(row)
    print("why  {0}".format(cur.fetchone()))

    if row == None:
        break

我收到这个输出:从数据库加载

    (1, 'Damian', 1, 15, 18, 100, 100)
    why  None
    None
    why  None

((((1, 'Damian', 1, 15, 18, 100, 100))) <-- 这是在我的数据库中。为什么当我尝试在另一个打印中打印时它不起作用?或者当我尝试像这样打印: print(row[0]) 它显示错误,例如 = print(row[0]) TypeError: 'NoneType' object is not subscriptable

4

1 回答 1

0

您的问题是您fetchone()在循环内调用了两次。while与行相对应的循环没有什么神奇之处。fetchone()相反,它是调用前进到下一个结果行的副作用。

第一个print输出第一行;第二个(带有"why")将打印第二行(如果存在)。

于 2013-06-06T06:23:11.077 回答