我正在尝试从较大列表中的嵌套列表中选择第一个元素。我试图从MySQL表中返回名称值。我建立了与服务器的连接,然后执行以下操作:
cur = db.cursor()
cur.execute("SELECT * FROM prototype")
db.commit()
results = cur.fetchall()
for name in cur:
print results[0]
我得到以下输出:
('orange', 50L, 3L)
('orange', 50L, 3L)
('orange', 50L, 3L)
('orange', 50L, 3L)
('orange', 50L, 3L)
('orange', 50L, 3L)
('orange', 50L, 3L)
('orange', 50L, 3L)
('orange', 50L, 3L)
('orange', 50L, 3L)
重复正确的条目数,但只返回一个条目。如何让它返回每个条目的名称?完整的结果是:
(('test', 3L, 1L), ('apple', 10L, 2L), ('orange', 50L, 3L), ('\tbanana', 1L,4L), ('test1', 5L, 5L), ('test5', 5L, 6L), ('test3', 3L, 7L), ('gui', 1L, 8L), ('test10', 5L, 9L), ('screws', 10L, 10L))
答案 0 :(得分:4)
那么你应该循环你的results
:
cur = db.cursor()
cur.execute("SELECT * FROM prototype")
db.commit()
results = cur.fetchall()
for name in results:
print name[0]
上面的代码得到的是tuple
元组,因此for循环的每次迭代都会将每个连续元组分配给name
。现在要检索该元组的值,您可以通过name[0]
将其称为第一个元素,将name[1]
称为第二个元素,依此类推。
答案 1 :(得分:2)
更改
for name in cur:
print results[0]
到
for result in results:
print result[0]