如何在 python 中使用 sql 查询获取列表?

How to get list using sql query in python?

我在这里定义了一个函数并进行了查询。

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(row[2]) 它给我错误,列表索引超出范围。

这是我得到的错误

File "Accounting.py", line 13, in fetch
    print(row[2])
IndexError: list index out of range

row[2] returns 行列表的第 3 行。 row[0][2] returns 第一行第三列。

您可以 运行 像这样的片段来可视化返回的内容:

cur.execute(...)
for row in cur:
    print(row)

row = cur.fetchall() 不会给你一行,而是一个行列表,所以 row 根本不是一行, row[2] 是列表中的第三行,不是连续的第三个字段。如果您只想要一行,请使用 cur.fetchone().

请注意,查询可能 return 多行,并且不清楚在这种情况下您想做什么,所以我不会在这里处理它。 cur.fetchone() 无论如何只会给你一行。