5
我有一個這樣的代碼:Fetchall只返回Python中的一列嗎?
db = MySQLdb.connect(user='root', db='galaxy', passwd='devil', host='localhost')
cursor = db.cursor()
cursor.execute('SELECT username, password FROM galaxy_user')
names = [row[0] for row in cursor.fetchall()]
passw = [password[1] for password in cursor.fetchall()]
db.close()
的問題是,我只能訪問這兩個名稱或從下面的代碼PASSW。有了這個我只能得到用戶名。我爲passw得到空的列表。現在,如果我切換這樣的:
passw = [row[1] for row in cursor.fetchall()]
names = [password[1] for password in cursor.fetchall()
我得到的passw值,但名稱是空列表。發生了什麼?
我認爲這裏的關鍵是,'.fetchall()'似乎有點多餘的,因爲遊標應該是迭代的......不是, 'list(cursor)'或者我喜歡你的'dict(光標)'的想法:) –
@eumiro,我剛測試過使用Python cx_Oracle:records = cursor.fetchall() names = [記錄[0] passw = [記錄[1]用於記錄記錄]並且名稱爲無。謝謝 – Frank