import jsondata = {"name": "John","date": datetime.now()
}encoder = DateEncoder()
json_string = json.dumps(data, cls=encoder)
print(json_string)
其中DateEncode定义如下:
#coding:utf-8
import json
from datetime import datetime
class DateEncoder(json.JSONEncoder):def default(self, obj):if isinstance(obj, datetime):return obj.strftime("%Y-%m-%d %H:%M:%S")else:return json.JSONEncoder.default(self, obj)
-
#coding:utf-8:这行代码声明了文件的编码格式为 UTF-8,这是一种广泛使用的字符编码,可以表示世界上大多数语言的字符。 -
import json:导入 Python 的json模块,这个模块用于处理 JSON 数据。 -
from datetime import datetime:从datetime模块导入datetime类,这个类用于处理日期和时间。 -
class DateEncoder(json.JSONEncoder):定义了一个名为DateEncoder的类,它继承自json.JSONEncoder。 -
def default(self, obj):定义了一个名为default的方法,它是JSONEncoder类的一个方法,用于处理对象的序列化。当遇到JSONEncoder不知道如何序列化的对象时,会调用这个方法。 -
if isinstance(obj, datetime):检查传入的对象obj是否是datetime类型的一个实例。 -
return obj.strftime("%Y-%m-%d %H:%M:%S"):如果obj是datetime类型,使用strftime方法将其格式化为 "年-月-日 时:分:秒" 的字符串格式。 -
return json.JSONEncoder.default(self, obj):如果obj不是datetime类型,调用父类JSONEncoder的default方法来处理序列化。
