0

我正在尝试从更大列表中的嵌套列表中选择第一个元素。我正在尝试从 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))
4

2 回答 2

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. 现在要检索该元组的值,您将其称为第一个元素 by name[0],第二个 byname[1]等等。

于 2013-03-11T22:01:20.990 回答
2

改变

for name in cur:
    print results[0]

for result in results:
    print result[0]
于 2013-03-11T22:01:14.760 回答