我在这里定义了一个函数并进行了查询。
def fetch(temp_pass,temp_accno):
cur.execute('''SELECT id, name, acc_no, ph_no,address, email,balance
FROM accounts
WHERE id = %s and acc_no = %s''',
(str(temp_pass), str(temp_accno)));
row = cur.fetchall()
print(row[2])
该行中应该是一个长度为7列表,但是当我运行print(row2)时,它给出了列表索引超出范围的错误。
这是我得到的错误
File "Accounting.py", line 13, in fetch
print(row[2])
IndexError: list index out of range
发布于 2018-06-10 03:51:43
row = cur.fetchall()
不会给出一行,而是给出一列行,所以row
根本不是一行,row[2]
是列表中的第三行,而不是一行中的第三个字段。如果只需要一行,请使用cur.fetchone()
。
注意,查询可能会返回几行,并且不清楚在这种情况下您想要做什么,所以我不在这里处理它。不管怎样,cur.fetchone()
只会给你一行。
发布于 2018-06-10 03:31:59
row[2]
返回行列表中的第三行。row[0][2]
返回第一行的第三列。
您可以运行如下代码片段来可视化返回的内容:
cur.execute(...)
for row in cur:
print(row)
https://stackoverflow.com/questions/50777751
复制相似问题