MySQL Werte in Liste speichern

  • 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 :)

    "Really, I'm not out to destroy Microsoft. That will just be a completely unintentional side effect."

    Linus Benedict Torvalds, 28.9.2003


    Hast Du die Woche schon Deine Raspberry gesichert =O Bei mir tut das raspiBackup automatisch ;)

    Edited once, last by framp ().

  • Hallo,


    Quote

    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(...)"?

    Edited once, last by Bauer1 ().

  • 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.