SQLite3在一条SELECT语句中获取多个列(python)

时间:2018-07-12 13:26:37

标签: python sqlite fetch

我想知道如何同时获取多个列。这是我到目前为止的代码,但我收到错误消息: ValueError: too many values to unpack (expected 2)

con = sqlite3.connect('database.db')
cur = con.cursor()
cur.execute("SELECT name, age FROM employees")
name, age = cur.fetchall()

实际上是否可以同时获取多于1列? 谢谢!

1 个答案:

答案 0 :(得分:1)

cur.fetchall()为您提供(name, age)元组的列表,与employees表中的行数一样多。您的不仅包含两行,因此您的name, age = ...语法失败,因为这需要两个结果。即使只有 两行,您也要为这两行(每个元组)分配名称nameage,这可能不是您想要的。 / p>

您可能想在光标上重复;这使您可以分别处理每个行元组,包括将两个列值分配给两个单独的目标:

for name, age in cur:
    # process each name and age separately

或仅将cur.fetchall()结果分配给一个变量:

results = cur.fetchall()

并根据需要处理列表。