How to create a datetime object using PyYAML

I would like to create a datetime object with datetime.datetime.now()PyYAML. Easy to call some functions:

>>> y = """#YAML
... description: Something
... ts: !!python/object/apply:time.time []"""
>>> yaml.load(y)
{'description': 'Something', 'ts': 1289955567.940973}
>>> 

However, I can’t figure out how to get it datetime.now(). I tried so many permutations with calls using various python yaml tags .

All of them do not work:

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
+5
source share
2 answers

I think this example achieves what you are looking for:

dt = yaml.load("""dt: !!python/object/apply:apply
    - !!python/object/apply:getattr
        - !!python/name:datetime.datetime
        - now
    - []
""")

, , !!python/object, PyYAML, (datetime.datetime.now "" factory datetime). , ( , ):

dt = yaml.load("dt: !!python/object/apply:time.gmtime []")
dt = yaml.load("dt: !!python/object/apply:time.time []")

- , datetime.datetime.now, !!python/object/apply. , , .

, , , ( , YAML ). PyYAML :

dt = yaml.load("""dt: !!timestamp '2010-11-17 13:12:11'""")
+5

, , PyYAML YAML. datetime.datetime.now().isoformat() ?

datetime .

isoformat, :

timestamp = datetime.datetime.now().isoformat()

, strptime():

new_dt_object = datetime.datetime.strptime(timestamp, '%Y-%m-%dT%H:%M:%S.%f')

, , , :

yaml_timestamp = yaml.dump({'timestamp': datetime.datetime.now()})

yaml.load(yaml_timestamp), , datetime.datetime.

0

All Articles