Python:将simplejson转储的unicode datetime转换回datetime对象

Alb*_*ert 4 python unicode datetime json simplejson

我有...

entity = simplejson.dumps({"a":unicode(datetime.datetime.utcnow())})
Run Code Online (Sandbox Code Playgroud)

如何将日期时间(转换为unicode)再次转换回日期时间?

所以我可以做点什么......

entity2 = simplejson.loads(entity)
#your answer here..
add5 = entity2["a"] + datetime.timedelta(minutes=5)
Run Code Online (Sandbox Code Playgroud)

谢谢!

nin*_*cko 7

DATETIME_FORMAT = '%Y-%m-%d %H:%M:%S'
Run Code Online (Sandbox Code Playgroud)

在序列化之前执行以下操作:

time = datetime.strftime(time, DATETIME_FORMAT)
Run Code Online (Sandbox Code Playgroud)

反序列化后执行以下操作:

time = datetime.strptime(time, DATETIME_FORMAT)
Run Code Online (Sandbox Code Playgroud)

例:

>>> from datetime import datetime

>>> DATETIME_FORMAT = '%Y-%m-%d %H:%M:%S'

>>> time = datetime.now()
>>> time
datetime.datetime(2011, 5, 5, 3, 1, 45, 646302)

>>> time = time.strftime(DATETIME_FORMAT)
>>> time
'2011-05-05 03:01:45'

>>> import json

>>> time = json.loads(json.dumps(time))
>>> time
'2011-05-05 03:01:45'

>>> time = datetime.strptime(time, DATETIME_FORMAT)
>>> time
datetime.datetime(2011, 5, 5, 3, 1, 45)
Run Code Online (Sandbox Code Playgroud)

如果你发现这有点不优雅,你可以考虑一个自定义的json编码器/解码器.我个人已经尝试了默认的json包中的那些,但是放弃了我的头发用神秘的错误消息.如果你走这条路,我可能会推荐第三方json包.