熊猫CSV到Django的响应

时间:2019-02-17 01:48:40

标签: python django pandas

我有一个从数据库生成的DataFrame。如何提供下载CSV的响应?

基本上

df = magic_dataframe_supplier()
response = HttpResponse(content_type='text/csv')
response['Content-Disposition'] = 'attachment; filename=export.csv'

# ... type mapping code ...

return response

我有一个csv.writer的工作版本,但是出于明显的原因,它不是DataFrame。而且我不清楚如何将df变成这样的对象。

2 个答案:

答案 0 :(得分:0)

给出:

df = magic_dataframe_supplier()
response = HttpResponse(content_type='text/csv')
response['Content-Disposition'] = 'attachment; filename=export.csv'

只需写通行证:

df.to_csv(path_or_buf=response)  # with other applicable parameters
return response

Pandas将数据帧写入响应缓冲区中的CSV,然后Django提供响应。

压缩。 Pandas不允许传递非compression参数,因为它无法从不是路径的缓冲区中确定压缩类型。相反,要进行压缩,必须将文件写入文本包装器,然后使用Python的gzip库进行压缩。然后,该对象将用作存档。必须使用与this类似的代码(适用于Django)。

答案 1 :(得分:-1)

我认为javascript中不存在对象类型“ DataFrame”。您可能想尝试使用JSON来传输数据。