我想知道如何同时获取多个列。这是我到目前为止的代码,但我收到错误消息:
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列? 谢谢!
答案 0 :(得分:1)
cur.fetchall()
为您提供(name, age)
元组的列表,与employees
表中的行数一样多。您的不仅包含两行,因此您的name, age = ...
语法失败,因为这需要两个结果。即使只有 两行,您也要为这两行(每个元组)分配名称name
和age
,这可能不是您想要的。 / p>
您可能想在光标上重复;这使您可以分别处理每个行元组,包括将两个列值分配给两个单独的目标:
for name, age in cur:
# process each name and age separately
或仅将cur.fetchall()
结果分配给一个变量:
results = cur.fetchall()
并根据需要处理列表。