Seite 1 von 1

MySQL Abfrageergebnis in wx python MessageBox zeigen

Verfasst: Dienstag 20. März 2018, 16:12
von sharky1001
Guten Tag zusammen,

ich habe Python mit MySQL verbunden und jetzt möchte ich das Ergebnis aus zwei MySQL Spalten in einem Messagebox zeigen. Eigentlich klappt alles nur das Format wie das Ergebnis angezeigt wird gefällt mir nicht. Das Ergebnsis sieht so aus:
((datetime.datetime(2018,3,20,11,42,30), 'durchgelaufen'),)
Das Ergebnis kommt aus zwei MySQL Spalten. Die Erste enthält Datum, zweite String - wie hier im Beispiel 'durchgelaufen'
Eigentlich sollte Python idealerweise folgendes zeigen: 2018.03.21 11:42:30 durchgelaufen

Hier ist mein Code:

Code: Alles auswählen


import pymysql
import wx

db = pymysql.connect("XXXXXX","XX","XXX","XX" )

cursor = db.cursor()

cursor.execute("SELECT * FROM MySQL_Tabelle)

data = str(cursor.fetchall())
app = wx.App()
wx.MessageBox(data , 'Rowdatastream', wx.OK | wx.ICON_INFORMATION)
db.close()

Vielen Dank für die Infos

Re: MySQL Abfrageergebnis in wx python MessageBox zeigen

Verfasst: Dienstag 20. März 2018, 16:38
von Sirius3
@sharky1001: Du mußt Dein Ergebnis so formatieren, wie Du es gerne hättest. In Deinem Fall mußt Du auch noch zusätzlich überlegen, wie Du mehrere Datensätze darstellen willst. *-SELECTS vermeiden und Felder explizit angeben.

Re: MySQL Abfrageergebnis in wx python MessageBox zeigen

Verfasst: Dienstag 20. März 2018, 17:13
von sharky1001
Danke für die Antwort Sirius,

ich vermute unter Formatieren meinst du der cursor hier: data = str(cursor.fetchall())

Grüße

Re: MySQL Abfrageergebnis in wx python MessageBox zeigen

Verfasst: Dienstag 20. März 2018, 18:55
von __deets__
Yupp. Einfach nur eine Liste von Tupeln (das ist das Ergebnis von fetchall) zu einem String zu wandeln ist ein bisschen sehr holzhammerig. Du musst die einzelnen Zeilen oder die Zeile auseinander nehmen, und die einzelnen Spalten-Werte in eine sinnvolle Darstellung bringen. Dazu kannst du string.format verwenden, und gegebenenfalls datetime.strftime fuer die zeit-werte.

Re: MySQL Abfrageergebnis in wx python MessageBox zeigen

Verfasst: Dienstag 20. März 2018, 19:08
von Sirius3
@__deets__: strftime ist unnötig, das geht alles mit format:

Code: Alles auswählen

"{:%Y.%m.%d %H:%M:%S} {}".format(*row)