首页 前端知识 ImportError: cannot import name ‘JSONEncoder‘ from ‘flask.json‘

ImportError: cannot import name ‘JSONEncoder‘ from ‘flask.json‘

2024-06-08 22:06:41 前端知识 前端哥 221 21 我要收藏

from flask import Flask
from flask.json import JSONEncoder
 

class CustomJSONEncoder(JSONEncoder):

    def default(self, obj):

        if isinstance(obj, datetime):

            return obj.strftime('%Y-%m-%d %H:%M:%S')

        elif isinstance(obj, date):

            return obj.strftime('%Y-%m-%d')

        else:

            return JSONEncoder.default(self, obj)


app = Flask(__name__)
app.json_encoder = MyJSONEncoder

报错:ImportError: cannot import name 'JSONEncoder' from 'flask.json' 

原因:'JSONEncoder' is deprecated and will be removed in Flask 2.3. Use 'Flask.json' to provide an alternate JSON implementation instead.

Flask 2.3.版本以上版本,JSONEncoder类被弃用了。这通常意味着在新版本中,原来用于处理JSON编码的类已经不再被推荐使用,并且在未来的版本中可能会被移除。

解决:

from flask import Flask
from flask.json.provider import DefaultJSONProvider
class CustomJSONEncoder(DefaultJSONProvider):
    def default(self, obj):
        if isinstance(obj, datetime):
            return obj.strftime('%Y-%m-%d %H:%M:%S')
        elif isinstance(obj, date):
            return obj.strftime('%Y-%m-%d')
        else:
            return DefaultJSONProvider.default(obj)


app = Flask(__name__)
app.json = CustomJSONEncoder(app)
app.json.ensure_ascii = False
转载请注明出处或者链接地址:https://www.qianduange.cn//article/11568.html
标签
flask
评论
发布的文章

小米商城

2024-06-16 15:06:28

JSON转日期,变为数字串

2024-06-16 09:06:45

使用axios读取本地json文件

2024-06-16 09:06:39

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!