将一些值提取到变量

时间:2017-09-06 16:53:04

标签: python sql python-2.7 pymssql

我收到了这段代码:

cursor.execute('SELECT nom FROM productes WHERE listacompra = 1')
rows = cursor.fetchall()
for row in rows:
   print(row[0])

我希望将它返回到某些变量中。我怎么能这样做?

修改

我想我没有正确解释自己。我想要的是两个变量具有相同列的两个值,而不是同一行。例如:

有两行:

id 1,nom Natillas,listacompra 1

id 2,nom Chocolate,listacompra 1

我希望有两个(或更多)变量,以便使用" Natillas"和其他一个"巧克力"。

由于

2 个答案:

答案 0 :(得分:0)

使用list comprehensions

cursor.execute('SELECT nom FROM productes WHERE listacompra = 1')
rows = cursor.fetchall()
var1 = row[0][0]   # or row['nom'] if you are fetching as dict 
var2 = row[1][0]

显然,要使其工作,您必须确保查询至少返回两行。

旧答案

迭代器将返回一个表示查询中指定的行的元组。例如,对于查询SELECT id, password FROM users,变量row将在第一个位置包含id值,在第二个位置包含password

例如:

for row in rows:
    id = row[0]
    pwd = row[1]

或者更巧合:

for row in rows:
    id, pwd = row

除非在定义连接时指定选项cursorclass=pymysql.cursors.DictCursor,否则它将返回字典:

for row in rows:
    id = row['id']
    pwd = row['password']

答案 1 :(得分:-1)

rows = cursor.fetchall()
for row in rows:
   print(row['<key of table field>'])