将用户构建的JSON编码器传递给Flask的jsonify函数。
将用户构建的JSON编码器传递给Flask的jsonify函数。
我想将我编写的numpy JSON序列化器传递给Flask的jsonify函数,但我找不到方法来实现这一点。我不能使用json.dumps,因为当处理错误消息时,我必须设置Flask响应的status_code。是否有一种类似于在这里使用json.dumps的cls参数的方式来传递JSON序列化器作为参数的方法,详细信息请参阅此处的Convert numpy type to python?
以下是我的代码;谢谢。
import json import numpy as np from flask import Flask, jsonify class JSON_Improved(json.JSONEncoder): ''' 用于帮助序列化包含numpy数据类型的numpy数组或列表。 ''' def default(self, obj): if isinstance(obj, np.integer): return int(obj) elif isinstance(obj, np.floating): return float(obj) elif isinstance(obj, np.ndarray): return obj.tolist() else: return super(MyEncoder, self).default(obj) app = Flask(__name__) @app.errorhandler(ErrorMessage) def handle_invalid_usage(error): response = jsonify(error.to_dict()) response.status_code = error.status_code return response