Fin*_*nnM 5 datetime json encode object python-2.7
目前正在使用 python 开发一个快速的小项目,并尝试将对象编码为 JSON 字符串。我之前已经这样做过好几次了,除了现在,没有任何问题。通常我只做以下事情。
def ClassToEncode :
def __init__(self, arg1, arg2, ..., argn) :
self.attr1 = arg1
self.attr2 = arg2
...
self.attrn = argn
...
def toJSON(self) :
return json.dumps(self, default=lambda o: o.__dict__)
Run Code Online (Sandbox Code Playgroud)
但问题是我的类属性之一是 datetime.datetime 对象,并且抛出以下错误
AttributeError: 'datetime.datetime' object has no attribute '__dict__'
Run Code Online (Sandbox Code Playgroud)
任何可以启用将日期时间属性包含到 JSON 输出中的功能的想法或解决方案?
提前致谢!
isoformat()
您可以在日期时间对象上使用该方法将其转换为 ISO-8601 格式的时间字符串,然后将其序列化为 JSON 就可以了。在另一端,调用datetime.datetime.strptime()
格式化字符串将其转换回对象datetime
:
>>> from datetime import datetime as dt
>>> now = dt.now()
>>> now
datetime.datetime(2014, 9, 4, 3, 19, 44, 214096)
>>> isonow = now.isoformat()
>>> isonow
'2014-09-04T03:19:44.214096'
>>> fmt = "%Y-%m-%dT%H:%M:%S.%f"
>>> newtime = dt.strptime(isonow, fmt)
>>> newtime
datetime.datetime(2014, 9, 4, 3, 19, 44, 214096)
Run Code Online (Sandbox Code Playgroud)