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: 17741
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: 1487
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: 13079
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.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Antworten