gpt4 book ai didi

Python Flask Rest Plus - 返回响应对象以及描述

转载 作者:行者123 更新时间:2023-12-01 00:34:24 25 4
gpt4 key购买 nike

我正在使用 Python Flask RestPlus 框架,对于 Python 来说相当新。尝试发送回响应对象以及一些描述和状态代码,但失败并出现以下错误:

TypeError: Object of type Response is not JSON serializable

这就是我正在做的事情

from flask import jsonify, Response
from flask_restplus import Resource
class MyUsage(Resource):
def get(self):
# Do something
return "My Description" + jsonify(myObject), 200

我什至尝试发送如下对象:

result = {'Desc': 'My Description',
'Result': jsonify(myObject)}
return result, 200

return jsonify('Desc': 'My Description',
'Result': myObject), 200

一切都因同样的错误而失败。

最佳答案

jsonify 不会序列化对象。它用于将字典转换为有效的 JSON 响应(可能有一些异常(exception))。

有几种方法可以处理这个问题。我个人最喜欢的是 marshmallow 库,因为您可以使用它将请求数据反序列化为对象,同时验证数据并将对象序列化为字典。这样您的对象就永远不会在无效状态下实例化。

另一种可能更简单但可扩展性较差的方法是为您的对象编写 to_data 方法。

class Object():
def __init__(self, a, b):
self.a = a
self.b = b

def to_data(self):
return {
'a': self.a,
'b', self.b
}

您可以使用此方法来序列化您的对象。

myObject = Object(1,2)
data = myObject.to_data()
return jsonify(data), 200

关于Python Flask Rest Plus - 返回响应对象以及描述,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57915581/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com