我正在尝试使用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]时,会出现“索引超出范围”错误。你知道吗
编辑:当我单独打印时,会打印以下内容: [(字符串,)]
约阿希姆的评论是正确的。如果表中不存在
i
,游标仍将执行并存储在cursor
对象中,包括如果找不到则不存储任何内容。此表达式第一次出现时,fetchall()
将返回一个空列表,当您试图使用print(a[0])
打印时,该列表将没有0
索引。你知道吗试着用这个编辑,看看值是否返回,同时请确认SQL表的
id
列的数据类型。你知道吗相关问题 更多 >
编程相关推荐