我有一个从数据库生成的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
变成这样的对象。
答案 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来传输数据。