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: 18375
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: 1510
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: 14336
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.
„Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.“ — Brian W. Kernighan
Antworten