在 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 版本中正常工作。

Flask 2.3.2 版本

原文地址: https://www.cveoy.top/t/topic/p0LX 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录