Ich möchte in der Lage sein, ein Datetime-Objekt mit datetime.datetime.now()
PyYAML erstellen. Es ist einfach, einige Funktionen zu nennen:So erstellen Sie ein Datetime-Objekt mit PyYAML
>>> y = """#YAML
... description: Something
... ts: !!python/object/apply:time.time []"""
>>> yaml.load(y)
{'description': 'Something', 'ts': 1289955567.940973}
>>>
Allerdings kann ich nicht scheinen, um herauszufinden, wie man ein datetime.now()
zu bekommen. Ich habe so viele Permutationen mit Anrufen versucht, die die verschiedenen python yaml tags verwenden.
all diese fehlschlagen:
tests = [
'dt: !!python/object:datetime.datetime.now []',
'dt: !!python/object/new:datetime.datetime.now []',
'dt: !!python/object/apply:datetime.datetime.now []',
]
for y in tests:
try:
print yaml.load(y)
except Exception, err:
print '==>', err
Sehr schön. Ich stimme zu, dass dies ein etwas komplizierter Anwendungsfall ist, aber Ihre Lösung scheint der einfachste Weg zu sein. Für den Kontext untersuche ich mit YAML Testdaten, die über Django geladen werden. Das Erzeugen von Daten, wenn die Datei geladen wird, wäre ein großer Vorteil für viele Tests. Danke für die Antwort! – brianz
fwiw, mit 'apply' in Python 3 entfernt, funktioniert das Beispiel nicht mehr. Das heißt, ich bin nicht wirklich auf der Suche nach dies nur stolperte über diese Antwort, während einige Nachforschungen :) (wow 'pyyaml' ist verrückt!) –