Seite 1 von 1

In Array abspeichern

Verfasst: Samstag 5. März 2016, 15:17
von erdmulch
Hallo Python Forum,

wie man dem Programmcode entnehmen kann, mach ich eine kleine Datenbank Abfrage.
Allerdings ist dies sehr unübersichtlich, bzw. man könnte dies alles schön in eine Schleife bzw. in einen Array packen.
Die Ergebnisse E1, E2, E3, E4 werden natürlich weiter verarbeitet.
meine frage ist nun, wie kann ich einen Array erstellen, damit ich nachher die Ergebnisse E1, E2, E3 und E4 weiterverarbeiten kann?

Code: Alles auswählen

           
           cur.execute("Select State FROM SPS where ID = 1")         
            rows = cur.fetchall()
            E1 = rows[0][0]
            cur.execute("Select State FROM SPS where ID = 2")         
            rows = cur.fetchall()
            E2 = rows[0][0]
            cur.execute("Select State FROM SPS where ID = 3")         
            rows = cur.fetchall()
            E3 = rows[0][0]
            cur.execute("Select State FROM SPS where ID = 4")         
            rows = cur.fetchall()
            E4 = rows[0][0]           

mein erster Gedanke war diese:

Code: Alles auswählen

while i <= 4:
    i = i+1
    y = y+1
    cur.execute("Select State FROM SPS where ID=%s",str(y))         
    rows = cur.fetchall()
    E[i] = rows[0][0]
    print E1
    print E2
    print E3
    print E4


Leider funktioniert das nicht, kann mir jemand sagen wie man es richtig macht?

vielen Dank im voraus

Re: In Array abspeichern

Verfasst: Samstag 5. März 2016, 15:34
von BlackJack
@erdmulch: Wie man eine Liste erstellt und dort Elemente anhängt sind eigentlich Grundlagen. In der Python-Dokumentation gibt's ein Tutorial.

Bei dem speziellen Beispiel würde ich aber auch nur eine SQL-Abfrage schreiben die alle vier Datensätze abfragt.

Re: In Array abspeichern

Verfasst: Samstag 5. März 2016, 18:08
von darktrym
Noch ein Hinweis von mir. Sollte dein Kaffee in nächster Zeit komisch schmecken, wundere dich nicht. Man greift nicht auf die Spalten der Antwort via Index zu, das erzeugt nur schwer les- & wartbaren Code. Gott erschuf dafür das Dictionary.

Re: In Array abspeichern

Verfasst: Samstag 5. März 2016, 18:22
von Sirius3
@erdmulch: das was Du machst ist in mehrerlei Hinsicht sehr unüblich. IDs in Datenbanken sind normalerweise abstrakte Zahlen, die keine andere Information enthalten, als einen Datensatz eindeutig zu beschreiben. Es macht also keinen Sinn den Datensatz mit ID 1 oder 2 explizit zu selektieren. Wenn es genau einen Datensatz gibt, ist fetchone einem fetchall vorzuziehen.