Python SQLite, TypeError: unsupported operand type(s) for -: 'sqlite3.Cursor' and 'float'?
Hallo,
ich bin es mal wieder. Ich weiß nicht was dieser Fehler zu bedeuten hat, kann mir jemand eventuell helfen?
In der Datenbank ist der Timestamp (gerundet) gespeichert .
Code:
zeit_timestamp = cursor.execute("SELECT zeit FROM gewinnspiel")
final_zeit = zeit_timestamp-time.time()
await asyncio.sleep(final_zeit)
Fehlercode:
final_zeit = zeit_timestamp-time.time()
TypeError: unsupported operand type(s) for -: 'sqlite3.Cursor' and 'float'
Liebe Grüße
3 Antworten
Leider kommt danach ein neuer Fehler.
TypeError: unsupported operand type(s) for -: 'list' and 'float'
zeit_timestamp = cursor.execute("SELECT zeit FROM gewinnspiel")
zeiten = zeit_timestamp.fetchall()
final_zeit = zeiten-time.time()
fetchall liefert eine Liste von Ergebnissen, ein Ergebnis ist wiederum eine Liste. Wenn ich dich richtig verstehe, interessiert dich aber nur das erste Ergebnis bzw. es gibt überhaupt nur ein Ergebnis. Dann solltest du es vielleicht so formulieren:
cursor.execute("SELECT zeit FROM gewinnspiel")
ergebnis = cursor.fetchone()
zeit = ergebnis[0]
final_zeit = zeit-time.time()
Verschiedene Dinge sollten verschiedene Namen haben, sonst wird ein Programm sehr schnell unleserlich und du weißt in zwei Wochen nicht mehr, was dein Programm eigentlich machen soll.
Lies mal z.B. hier:
https://www.inf-schule.de/datenbanksysteme/zugriff/pythonzugriff
Hey,
danke für dein Antwort.
Mich interessieren alle Zeiten in der Datenbank, da dies ein Gewinnspiel Befehl wird möchte ich das nach dem Bot Neustart das er noch die Zeit kennt und alles wie normal ausrollen tut.
Wäre das den möglich?
Liebe Grüße:)
Dein Fehler sagt das du die Datentypen nicht miteinander addieren kannst .
Da dir TechPech1984 schon ausgiebig geantwortet hat und Du leider auch keine Hilfe willst . Endet hier schon das was ich zu sagen habe . Denn es unterscheidet sich nicht von TechPech184 Antwort .
Lern die Grundlagen was Datentypen angeht . Lerne vor allem Vorlagen zu nutzen .
Es gibt das was Du da machst in keinem Tutorial . Auf ein Execute erfolgt ein Fetch um die Daten abzuholen . Erfinde nicht etwas was Du so bestimmt nicht gelernt hast .
Viel Spass .
Hallo,
danke für deine Antwort auf meine Frage.
Leider kommt danach ein neuer Fehler.
TypeError: unsupported operand type(s) for -: 'list' and 'float'
zeit_timestamp = cursor.execute("SELECT zeit FROM gewinnspiel")
zeiten = zeit_timestamp.fetchall()
final_zeit = zeiten-time.time()
Lg
oh man ich verzweifel an dir
was macht den
zeit_timestamp = cursor.execute("SELECT zeit FROM gewinnspiel")
und sag mir nicht das es die zeit zurück gibt .
es gibt dir ein handle oder objekt auf eine SQL anfrage auf eine SQLiTE datenbank zurück .
und jetzt willst du ein Handle bzw Objekt minus eine Zeit nehmen .
sorry, aber wenn Du nciht endlich die Grundlagen einer programmiersprache lernst . wird das nichts .
JEDER DATENTYP ist für SICH wichtig .
so wie du nicht an deinen fingern ANNA+1 rechnen kannst weil ANNA buchstaben sind und 1 eine zahl . weil ANNA kannst du nicht an deinen Fingern darstellen . 3+1 schon .
so kannst du im COMPUTER auch nicht einfach ein Objekt +1 RECHNEN . weil das kein Ergebnis gibt ausser ... DATENTYPEN PROBLEM .
fang am besten mit Java an, scheint das du einfach nicht begreifen willst was du da machst weil python bei vielen dingen zu nett ist und einige dinge selber in den richtigen typ wandelt . das geht aber auch nur wenn es überhaupt wandelbar ist .
handle = cursor.execute(
bzw
objektvariable = cursor.execute(
und das handle bzw objekt kann dann mit
objektvariable.fetch.... ausgelesen werden
so wie du das bei den anderen dingen auch gemacht hast und so wie ich dir auch die dokus gegeben hab . das wird sich auch in den nächten 10 jahren nicht ändern , einfach eine vorgabe nehmen und kopieren und dann so abändern das es deinen wünschen entspricht, aber nicht einfach irgendwas weglassen oder erfinden .
Hallo TechPech1984,
bitte schaue in deinen Freundschaftsanfragen, und lese meine Entschuldigung durch. Ich hoffe du liest sie dir durch, und hoffe du nimmst sie an.
Liebe Grüße
ok ignoriere ich es halt , wenn du kein hilfe willst, dann behalte dein grundlegendes problem . wer nichts kannund alles kompeltt falsch macht und auch noch behaupotet das java irgendwie gleich python wäre , dann ist auch nichts mehr zu sagen. scheint das du mit der wahrheit und kritik noch nie was anfangen konntest. mich als troll zu defamieren zeigt dein niveau .
schönen tag .
p.s. wer nichts lernen will soll gerne dumm bleiben , dumme halten sich sowieso für die schlauesten .
Bitte lese meinen Kommentar richtig.
"Java und Python sind von der Syntax her nicht gleich". Ich komme mit Kritik klar, aber man sollte erstmal helfen, wenn man hier im Forum schon ist, danach kann man gerne seine Kritik äußern.
Ich empfinde deinen Kommentar nur als "Troll", da du mir immer fast nur das gleiche erzählst und nie richtig auf meine Frage eingehst.
Für schlau halte ich mich auch nicht, sonst würde ich ja hier nicht fragen.
Warum ich dir sage das du meine Beiträge ignorieren sollst ist, das wie oben bereits gesagt wurde, du nicht richtig auf meine Beträge eingehst, Hilfe erhalte ich so auch nicht.
Du kannst gerne unter meinen Beiträgen deine Meinung schreiben, jedoch bitte mit richtiger Eingehung meiner Frage.
Liebe Grüße ^^
Hallo,
das hat nichts mit der Programmiersprache zutun, sondern mit der Datenbank, siehe dir meinen ersten Beitrag dazu an (Lies dir meine Beschreibung durch).
Außerdem Java und Python sind von der Syntax her nicht gleich, ich möchte nur Hilfe erhalten, keine "Ratschläge", ich empfinde deine Kommentare auch nicht als Ratschlag sondern als "Troll" Beitrag.
Wenn du an mir verzweifelst, dann ignoriere meine Beiträge doch bitte.
Ich wünsche dir noch einen wunderschönen und angenehmen Tag.