阅读量:0
import json data = { "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
方法来处理序列化。