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)

正しい数のエントリに対して繰り返されますが、1つのエントリのみが返されます。各エントリの名前を返すにはどうすればよいですか?完全な結果は次のとおりです。

(('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はタプルのaであるため、forループを繰り返すたびに、連続する各タプルをに割り当てますname。ここで、そのタプルの値を取得するために、それを1番目の要素name[0]、2番目の要素などと呼びますname[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 に答える