gpt4 book ai didi

Flask_restful 无法返回文件

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

我有以下 flak_restful 文件可将 csv 文件返回给用户,但出现以下错误。

  File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/json/encoder.py", line 180, in default
o.__class__.__name__)
TypeError: Object of type 'Response' is not JSON serializable



import flask
from flask import request
from flask_restful import Resource

class MyAPIRes(Resource):

@classmethod
def get(cls):
csv = '1,2,3\n4,5,6\n'
response = flask.make_response(csv)
response.headers['content-type'] = 'application/octet-stream'
return response, 200

最佳答案

从 return 语句的第二部分中删除 , 200 应该可以。

第二个参数将调用 flask_restful 中的帮助程序来创建响应,但在本例中,您已经使用 make_response 创建了一个响应对象。没关系,您需要创建自己的对象来返回 JSON 以外的任何内容。但助手所做的事情之一是为您序列化数据(将其转换为 JSON),而 Response 类型不可序列化。

查看跟踪,您可以在此处的错误消息中看到它发生的情况:

File ".../flask_restful/__init__.py", line 510, in make_response
resp = self.representations[mediatype](data, *args, **kwargs)
File ".../flask_restful/representations/json.py", line 20, in output_json
dumped = dumps(data, **settings) + "\n"

有关响应类型的文档可以在 flask_restful response formats 部分找到.

关于Flask_restful 无法返回文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44548860/

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