Hui*_*Lim 2 python callback plotly-dash
嗨 任何人都可以帮助建议?我在尝试从单击下载链接到 CSV 文件时从下拉选择过滤的数据表中导出正在填充的数据时遇到问题。
单击下载链接后出错
csv_string = dff.to_csv(index=False, encoding='utf-8')
AttributeError: 'str' object has no attribute 'to_csv'
Run Code Online (Sandbox Code Playgroud)
下载的文件是一个包含 html 代码的文件。
下面的代码片段
csv_string = dff.to_csv(index=False, encoding='utf-8')
AttributeError: 'str' object has no attribute 'to_csv'
Run Code Online (Sandbox Code Playgroud)
xhl*_*uca 10
CSV 导出由dash_table.DataTable. 您只需要export_format='csv'在构建表时指定:
dash_table.DataTable(
id="table",
columns=[{"name": i, "id": i} for i in df.columns],
data=df.to_dict("records"),
export_format="csv",
)
Run Code Online (Sandbox Code Playgroud)
这app.py是您可以运行的完整示例:
import dash
import dash_table
import dash_html_components as html
import pandas as pd
df = pd.DataFrame(
[
["California", 289, 4395, 15.3, 10826],
["Arizona", 48, 1078, 22.5, 2550],
["Nevada", 11, 238, 21.6, 557],
["New Mexico", 33, 261, 7.9, 590],
["Colorado", 20, 118, 5.9, 235],
],
columns=["State", "# Solar Plants", "MW", "Mean MW/Plant", "GWh"],
)
app = dash.Dash(__name__)
server = app.server
app.layout = dash_table.DataTable(
id="table",
columns=[{"name": i, "id": i} for i in df.columns],
data=df.to_dict("records"),
export_format="csv",
)
if __name__ == "__main__":
app.run_server(debug=True)
Run Code Online (Sandbox Code Playgroud)
我相信你的答案是这样的:
@app.server.route('/dash/urlToDownload')
def download_csv():
return send_file('output/downloadFile.csv',
mimetype='text/csv',
attachment_filename='downloadFile.csv',
as_attachment=True)
Run Code Online (Sandbox Code Playgroud)
您可以查看此链接以获取更多信息: