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
方法来处理序列化。