Seite 1 von 1
Liste formatieren
Verfasst: Freitag 20. November 2015, 22:17
von erdmulch
Hallo zusammen,
ich mache gerade ein paar Datenbank abfragen
nun komme ich zu einer Spalte mit der aktuellen Uhrzeit.
Als Ergebnis erhalte ich folgende Liste:
[u'2015-11-20 15:11', u'2015-11-20 16:11', u'2015-11-20 17:11', u'2015-11-20 18:11', u'2015-11-20 19:11', u'2015-11-20 20:11', u'2015-11-20 21:11']
damit ich die Daten weiter verarbeiten kann, benötige ich aber folgendes:
[2015-11-20 15:11, 2015-11-20 16:11, 2015-11-20 17:11, 2015-11-20 18:11, 2015-11-20 19:11, 2015-11-20 20:11, 2015-11-20 21:11]
Kann mir jemand sagen wie ich Liste entsprechend formatieren kann?
vielen Dank im voraus
Re: Liste formatieren
Verfasst: Freitag 20. November 2015, 22:24
von pillmuncher
Die zweite Liste ist kein gültiges Python:
Code: Alles auswählen
In [1]: [u'2015-11-20 15:11', u'2015-11-20 16:11', u'2015-11-20 17:11', u'2015-11-20 18:11', u'2015-11-20 19:11', u'2015-11-20 20:11', u'2015-11-20 21:11']
Out[1]:
['2015-11-20 15:11',
'2015-11-20 16:11',
'2015-11-20 17:11',
'2015-11-20 18:11',
'2015-11-20 19:11',
'2015-11-20 20:11',
'2015-11-20 21:11']
In [2]: [2015-11-20 15:11, 2015-11-20 16:11, 2015-11-20 17:11, 2015-11-20 18:11, 2015-11-20 19:11, 2015-11-20 20:11, 2015-11-20 21:11]
File "<ipython-input-2-e0f6f4e70c79>", line 1
[2015-11-20 15:11, 2015-11-20 16:11, 2015-11-20 17:11, 2015-11-20 18:11, 2015-11-20 19:11, 2015-11-20 20:11, 2015-11-20 21:11]
^
SyntaxError: invalid syntax
Was willst du denn
eigentlich tun? Sollen die Daten von Unicode Strings in
datetime-Objekte umgewandelt werden?
Re: Liste formatieren
Verfasst: Freitag 20. November 2015, 22:31
von cofi
Ich rate mal, dass du ueber den "u" Praefix stolperst. Das liegt daran, dass ein `print(list)` die `repr` Darstellung der Listenelemente zeigt und die sieht nunmal so aus.
Bleibt nur sich selbst um die gewuenschte Formatierung zu kuemmern:
Code: Alles auswählen
In [1]: xs = [u'2015-11-20 15:11', u'2015-11-20 16:11', u'2015-11-20 17:11', u'2015-11-20 18:11', u'2015-11-20 19:11', u'2015-11-20 20:11', u'2015-11-20 21:11']
In [2]: print '[%s]' % ', '.join(xs)
[2015-11-20 15:11, 2015-11-20 16:11, 2015-11-20 17:11, 2015-11-20 18:11, 2015-11-20 19:11, 2015-11-20 20:11, 2015-11-20 21:11]
Aber ich glaube auch nicht, dass du tatsaechlich _diese_ Ausgabe willst.
Re: Liste formatieren
Verfasst: Freitag 20. November 2015, 23:18
von erdmulch
Hallo pillmuncher,
du hast recht ich benötige Liste 1
wie kann ich das Datumsformat in einen String umwandeln, also ohne das "u"
vielen Dank
Re: Liste formatieren
Verfasst: Freitag 20. November 2015, 23:27
von BlackJack
@erdmulch: Das sind Strings, Unicode-Strings, also im Grunde ”echtere” Zeichenketten als das was Du haben willst. Warum willst Du das denn überhaupt? Innerhalb eines Programms das mit Text arbeitet ist Unicode doch eine gute Sache. Und wenn es als Bytes nach ”aussen” soll, dann muss man halt kodieren, beispielsweise mit der `encode()`-Methode.
Re: Liste formatieren
Verfasst: Samstag 21. November 2015, 08:42
von Sirius3
@erdmulch: nochmal zwei Schritte zurück. Was ist denn das für eine Datenbank? Datenbanken haben typischerweise verschiedene Datentypen, unter anderem auch für Datum. Bei Abfragen wird das automatisch in Python Datetime-Objekte umgewandelt, die Du bei Bedarf in einen String umwandeln kannst, wenn Du ihn ausgeben willst. Intern solltest Du immer mit Datetime-Objekten arbeiten.
Re: Liste formatieren
Verfasst: Samstag 21. November 2015, 08:46
von erdmulch
ich habe mir eine kleine Weboberfläche gebastelt.
das Javascript erwartet die Datumsformate wie folgt:
['2015-11-20 15:11', '2015-11-20 16:11', '2015-11-20 17:11', '2015-11-20 18:11', '2015-11-20 19:11', '2015-11-20 20:11', '2015-11-20 21:11', '2015-11-20 22:11', '2015-11-20 23:11', '2015-11-21 00:11', '2015-11-21 01:11', '2015-11-21 02:11', '2015-11-21 03:11', '2015-11-21 04:11', '2015-11-21 05:11', '2015-11-21 06:11', '2015-11-21 07:11']
und nicht so:
[u'2015-11-20 15:11', u'2015-11-20 16:11', u'2015-11-20 17:11', u'2015-11-20 18:11', u'2015-11-20 19:11', u'2015-11-20 20:11', u'2015-11-20 21:11', u'2015-11-20 22:11', u'2015-11-20 23:11', u'2015-11-21 00:11', u'2015-11-21 01:11', u'2015-11-21 02:11', u'2015-11-21 03:11', u'2015-11-21 04:11', u'2015-11-21 05:11', u'2015-11-21 06:11', u'2015-11-21 07:11']
Re: Liste formatieren
Verfasst: Samstag 21. November 2015, 08:53
von Sirius3
@erdmulch: Javascript erwartet die Daten in der Form, in der Du sie in Javascript wieder dekodierst, also üblicherweise in JSON. Dafür gibt es nämlich sowohl auf Python- als auch auf Javascript-Seite Funktionen, die das encodieren und decodieren erledigen.
Re: Liste formatieren
Verfasst: Samstag 21. November 2015, 08:54
von noisefloor
Hallo,
und wir kommt die Liste in / zu den JS-Datei?
BlackJack hat's oben ja schon gesagt: wenn du Bytes brauchst und dein Webframework die Konvertierung nicht automatisch macht, dann musst du halt selber enkodieren.
Gruß, noisefloor