Reinen Zahlenwert aus SQLite Tabelle auslesen

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
sunshineh
User
Beiträge: 22
Registriert: Dienstag 3. Januar 2017, 11:21

Ich habe eine SQLite Tabelle mit folgendem Aufbau:
AlertType - Text
Active - Bool

Nun möchte ich den Spalteninhalt einer bestimmten Zeile auslesen mit
cur.execute("SELECT Active FROM ALERTconfig WHERE ALERTtype == 'Away'")
print(cur.fetchone())
return res

Als Printausgabe erhalte ich
(0,)

Was muss ich wie ändern, damit ich nur "0" oder "1" erhalte?
Sirius3
User
Beiträge: 18252
Registriert: Sonntag 21. Oktober 2012, 17:20

Das Ergebnis ist ein Tuple, das Du einfach entpacken kannst:

Code: Alles auswählen

cur.execute("SELECT Active FROM ALERTconfig WHERE ALERTtype == ?", ['Away'])
active, = cur.fetchone()
Benutzeravatar
kbr
User
Beiträge: 1504
Registriert: Mittwoch 15. Oktober 2008, 09:27

Und da Du einen boolschen Wert abfragst, dürfte die Rückgabe eines Booleans sinnvoll sein:

Code: Alles auswählen

return bool(active)
Benutzeravatar
__blackjack__
User
Beiträge: 14001
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Statt ``ALERTtype == 'Away'`` sollte das wohl ``ALERTtype = 'Away'`` heissen.

Man sieht hier auch ganz schön das SQL bei Bezeichnern nicht auf Gross-/Kleinschreibung achtet. Allerdings gibt's Datenbanken die das dann doch tun, deshalb würde ich Bezeichner grundsätzlich klein schreiben. Und Unterstriche verwenden um Worte zu trennen.
“The best book on programming for the layman is »Alice in Wonderland«; but that's because it's the best book on anything for the layman.” — Alan J. Perlis
Antworten