Flask 2.3.2 版本 "json 序列化" 代码修改指南:解决 ImportError: cannot import name 'JSONEncoder' from 'flask.json'
在 Flask 2.0 版本中,JSONEncoder 类已被移除。您可以使用 json.JSONEncoder 代替。请修改您的代码如下:
import datetime as dt
import json
class ExtendedEncoder(json.JSONEncoder):
def default(self, o):
if isinstance(o, dt.datetime):
return o.strftime('%Y-%m-%d %H:%M:%S')
elif isinstance(o, dt.date):
return o.strftime('%Y-%m-%d')
elif isinstance(o, set):
return list(o)
return super().default(o)
def dumps(obj) -> str:
return json.dumps(obj, ensure_ascii=False, cls=ExtendedEncoder)
def dumps_ascii(obj) -> str:
return json.dumps(obj, ensure_ascii=True, cls=ExtendedEncoder)
这样修改后,您的代码应该能够在 Flask 2.3.2 版本中正常工作。
原文地址: https://www.cveoy.top/t/topic/p0LX 著作权归作者所有。请勿转载和采集!