如何在 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()
无论如何只会给你一行。
我在这里定义了一个函数并进行了查询。
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()
无论如何只会给你一行。