目前正在用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__)
但问题是,我的类属性之一是datetime.datetime对象,因此抛出了以下错误
AttributeError: 'datetime.datetime' object has no attribute '__dict__'
有没有什么想法或方法可以实现将datetime属性包含到JSON输出中的功能?
先谢了!
3条答案
按热度按时间ars1skjm1#
可以对datetime对象使用
isoformat()
方法将其转换为ISO-8601格式的时间字符串,然后将其序列化为JSON,另一方面,对格式化的字符串调用datetime.datetime.strptime()
将其转换回datetime
对象:nfzehxib2#
另一种方法是修改toJSON()方法以使用自定义字典来自定义数据:
8gsdolmq3#
虽然公认的答案工作得很好,如果你不需要任何日期格式,你可以很快摆脱直接字符串转换。
因此,类似下面的内容应该可以工作
dumps现在应该能够序列化这个字符串了。