Im Allgemeinen gibt es mehrere Möglichkeiten, Datumszeiten zu serialisieren, wie zum Beispiel:
- ISO-String, kurz und kann Zeitzoneinformationen enthalten, z. B. die Antwort von @jgbarah
- Zeitstempel (Zeitzoneninformation geht verloren), z. B. die Antwort von @JayTaylor
- Wörterbuch der Eigenschaften (einschließlich Zeitzone).
Wenn Sie mit dem letzten Weg einverstanden sind, verarbeitet das Paket json_tricks Daten, Zeiten und Datumszeiten einschließlich Zeitzone.
from datetime import datetime
from json_tricks import dumps
foo = {'title': 'String', 'datetime': datetime(2012, 8, 8, 21, 46, 24, 862000)}
dumps(foo)
was folgendes ergibt:
{"title": "String", "datetime": {"__datetime__": null, "year": 2012, "month": 8, "day": 8, "hour": 21, "minute": 46, "second": 24, "microsecond": 862000}}
Alles, was Sie tun müssen, ist
`pip install json_tricks`
und dann importieren Sie aus json_tricks
anstelle von json
.
Der Vorteil, es nicht als einzelnen String, Int oder Float zu speichern, liegt darin, dass beim Decodieren: Wenn Sie nur einen String oder insbesondere Int oder Float finden, müssen Sie etwas über die Daten wissen, um zu wissen, ob es sich um eine Datumszeit handelt. Als Wörterbuch können Metadaten gespeichert werden, sodass es automatisch decodiert werden kann, was json_tricks
für Sie macht. Es ist auch leicht bearbeitbar für Menschen.
Haftungsausschluss: Es wurde von mir erstellt. Weil ich das gleiche Problem hatte.