MySQL Werte in Liste speichern

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Moin,

    Ich habe eine MySQL Datenbank mit einer Tabelle, in der die Daten liegen, wann meine Bewässerung vom RPi eingeschaltet werden soll.

    Ich hab es probeweise mit nur zwei Spalten probiert: Spalte 1: 'index'; Spalte 2 'Timestamp'


    Als Ergebnis liefert die Konsole:
    ((30L,), (100L,))

    Ich möchte gern, dass die Werte (ohne das "L," dahinter) in eine Liste liegen. Sodass ich diese Liste sortieren kann und auf die einzelnen Elemente zugreifen kann. Wie stelle ich das an?


    Ich hab schon viel im Forum gesucht und gegoogelt, leider konnte ich keine Lösung finden.

    Gruß Henning

  • L bedeutet dass Du eine long Integer hast. Standardmäßig werden alle mysql Integer in Longs in Python konvertiert. Du kannst also ohne Sorge mit den Werten arbeiten als wären es normale Integer.

    Wenn Du die Werte ohne L ausgeben willst kannst Du es z.B. so machen:

    Code
    print [str(v[0]) for v in liste]

    Siehe z.B. hier wo jemand auch schon Dein Problem hatte :)

  • Hallo,

    Zitat

    Sodass ich diese Liste sortieren kann und auf die einzelnen Elemente zugreifen kann. Wie stelle ich das an?


    Mal abgesehen von deinem eigentlichen Problem (was ja keins ist, siehe oben ;) ) - wenn du die Werte sortiert haben willst, lass' dir die Abfrage direkt von der Datenbank sortieren. Wenn du einzelne Werte willst - frag' einzelne Werte aus der DB. Sonst brauchst du nämlich eigentlich auch keine DB :)

    Gruß, noisefloor

  • Danke!

    Wenn ich jetzt jedoch Daten (z.B. 11.3.2016) in der DB liegen habe, kommt bei einer Abfrage ein ((datetime.date(2016, 3, 11),), (datetime.date(2016, 3, 12),)).
    Soweit so gut.
    Jetzt möchte ich diese Daten in Timestamps umwandeln und in einer Liste ablegen. Ist das möglich und wenn ja, wie müsste der Code dann aussehen. mit "time.mktime(...)"?

    Einmal editiert, zuletzt von Bauer1 (13. März 2016 um 19:19)

  • Du magst das moechten, aber ich glaube das du das eigentlich nicht wirklich machen solltest. Das datetime-Modul ist naemlich deutlich maechtiger, als seine Vorgaenger (wie das time-Modul) - und das was du bekommst *sind* ja schon timestamps, bzw. Dates, die man ganz einfach mit zB datetime.combine in einen Timestamp umwandelt. Und alles rechnen damit ist auch viel einfacher. Wie waere es, wenn du uns mal ein bisschen mehr Zusammenhang vermittelst, inklusive mehr Code? Dann kann man dazu auch was vernuenftiges sagen.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!