Ich habe ein ein Code wie folgt aus:Fetchall, das nur eine Spalte in Python zurückgibt?
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()
Das Problem ist, ich nur entweder Namen zugreifen können oder aus dem folgenden Code passw. Mit diesem kann ich nur den Benutzernamen erhalten. Ich bekomme eine leere Liste für passw. Nun, wenn ich das so umschalte:
passw = [row[1] for row in cursor.fetchall()]
names = [password[1] for password in cursor.fetchall()
Ich bekomme den Wert von passw aber Namen ist leere Liste. Was ist los?
Ich denke, der Schlüssel ist hier, dass '.fetchall()' ein bisschen überflüssig scheint, als die Cursor iterable sein sollte ... Entweder, 'list (cursor)' oder Ich mag deine 'dict (cursor)' Idee :) –
@eumiro, ich habe gerade mit Python getestet cx_Oracle: records = cursor.fetchall() namen = [record [0] für record in records] passw = [Datensatz [1] für Datensatz in Datensätzen) und Name ist None. Vielen Dank – Frank