使用SELECT的python中的SQL出现问题

2024-09-27 21:24:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用python从SQL数据库中选择项。这是我的代码(数据库工作正常

for i in range(100):
    name1 = (crsr.execute("SELECT a FROM elections WHERE id = ?", (i,)))
    a = crsr.fetchall()
    print(a[0])
    name2 = (crsr.execute("SELECT b FROM elections WHERE id = ?", (i,)))
    b = crsr.fetchall()
    print(b[0])
    name3 = (crsr.execute("SELECT c FROM elections WHERE id = ?", (i,)))
    c = crsr.fetchall()
    print(c[0])

当我只打印a、b或c时,它会打印出一个包含数据库项的数组。但是,我只需要访问数据库中该点的元素(它们是字符串),但是当我尝试访问a[0]或b[0]或c[0]时,会出现“索引超出范围”错误。你知道吗

编辑:当我单独打印时,会打印以下内容: [(字符串,)]


Tags: 字符串代码fromid数据库forexecutesql
1条回答
网友
1楼 · 发布于 2024-09-27 21:24:23

约阿希姆的评论是正确的。如果表中不存在i,游标仍将执行并存储在cursor对象中,包括如果找不到则不存储任何内容。此表达式第一次出现时,fetchall()将返回一个空列表,当您试图使用print(a[0])打印时,该列表将没有0索引。你知道吗

试着用这个编辑,看看值是否返回,同时请确认SQL表的id列的数据类型。你知道吗

name1 = (crsr.execute("SELECT a FROM elections WHERE id = ?", (i,)))
if name1 = None:
    print('No result')
else:
    a = crsr.fetchall()
    print(a[0])

相关问题 更多 >

    热门问题