Nic*_*ick 16 python flask pandas
我在Flask应用程序中有一个Pandas数据框,我希望将其作为CSV文件返回.
return Response(df.to_csv())
Run Code Online (Sandbox Code Playgroud)
问题是输出显示在浏览器中而不是作为单独的文件下载.我怎么能改变呢?
我也尝试了以下内容,但它只是空输出.
response = make_response(df.to_csv())
response.headers['Content-Type'] = 'text/csv'
return Response(response)
Run Code Online (Sandbox Code Playgroud)
Max*_*axU 26
设置Content-Disposition告诉浏览器下载文件而不是在页面上显示其内容.
resp = make_response(df.to_csv())
resp.headers["Content-Disposition"] = "attachment; filename=export.csv"
resp.headers["Content-Type"] = "text/csv"
return resp
Run Code Online (Sandbox Code Playgroud)
小智 7
这几乎是相同的解决方案,但您可以将相同的信息传递给响应:
return Response(
df.to_csv(),
mimetype="text/csv",
headers={"Content-disposition":
"attachment; filename=filename.csv"})
Run Code Online (Sandbox Code Playgroud)
小智 5
设置content-disposition并使用stringIO将dataframe转换为流,下面是实现的代码,
execel_file = StringIO.StringIO()
filename = "%s.csv" % ('output file')
df.to_csv(execel_file, encoding='utf-8')
csv_output = execel_file.getvalue()
execel_file.close()
resp = make_response(csv_output)
resp.headers["Content-Disposition"] = ("attachment; filename=%s" % filename)
resp.headers["Content-Type"] = "text/csv"
return resp
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6321 次 |
| 最近记录: |