python - Dash python:如何用 csv 内容填充 dcc.dropdown?
问题描述
我想在 python 和 Dash 中创建一个网络应用程序。我尝试的第一个是创建一个下拉列表。
我有这些数据:
Date,FS,Total,Used,Mount
2020-01-25-12-00,/dev/hd1/,350,300,/dev/mount1
2020-01-25-18-00,/dev/hd2/,370,320,/dev/mount2
2020-01-26-06-00,/dev/hd3/,395,350,/dev/mount3
2020-01-26-12-00,/dev/hd1/,350,300,/dev/mount1
2020-01-26-18-00,/dev/hd2/,370,320,/dev/mount2
2020-01-27-06-00,/dev/hd3/,395,350,/dev/mount3
2020-01-27-12-00,/dev/hd1/,350,300,/dev/mount1
2020-01-27-18-00,/dev/hd2/,370,320,/dev/mount2
2020-01-28-06-00,/dev/hd3/,395,350,/dev/mount3
2020-01-28-12-00,/dev/hd1/,350,300,/dev/mount1
2020-01-28-18-00,/dev/hd2/,370,320,/dev/mount2
2020-01-29-06-00,/dev/hd3/,395,350,/dev/mount3
我想用我的 CSV 的所有 FS 创建一个下拉列表。我尝试这样做:
import dash
import dash_core_components as dcc
import dash_html_components as html
import sys
import os
import pandas as pd
app = dash.Dash
df = pd.read_csv('/xxx/xxx/xxx/xxx/xxx/xxx/data.txt')
test = df['FS'].unique()
dcc.Dropdown(
options=[test],
searchable=False
)
if __name__ == '__main__':
app.run_server(debug=True)
但输出是
Traceback (most recent call last):
File "./import dash.py", line 25, in <module>
app.run_server(debug=True)
TypeError: run_server() missing 1 required positional argument: 'self'
你能告诉我为什么吗 ?
解决方案
您的代码中存在一些问题:
您必须为破折号应用程序指定一个名称,例如
app = dash.Dash('app_name')
您的 csv 有混合分隔符(
,
在标题和;
元组中)下拉选项语法是
{'label: 'somelabel', 'value':'somevalue'}
,例如(参考下拉示例和参考)
options=[
{'label': 'New York City', 'value': 'NYC'},
{'label': 'Montreal', 'value': 'MTL'},
{'label': 'San Francisco', 'value': 'SF'}
],
- 您必须将组件分配给
app.layout
总结一下:
import dash
import dash_core_components as dcc
import dash_html_components as html
import sys
import os
import pandas as pd
app = dash.Dash('app_name')
df = pd.read_csv('/xxx/xxx/xxx/xxx/xxx/xxx/data.txt')
test = df['FS'].unique()
options = [{'label': t, 'value': t} for t in test]
app.layout = dcc.Dropdown(
options=options,
searchable=False
)
if __name__ == '__main__':
app.run_server(debug=True)
推荐阅读
- javascript - JS原型继承令人困惑
- python - pandas - 广播事业部
- html - Angular/RXJS - 如何根据不同的操作合并相同 HTTP 端点调用触发的多次响应?
- azure - 逻辑应用程序 - 从电子邮件中的 CSV 创建表
- javascript - 从对象中删除一组对象中存在的属性的更有效方法
- anylogic - 在某个码头上用托盘装载卡车时出错
- mysql - 如何加入 Apex oracle
- android - 创建动态列表的动态列表的最佳实践?
- android - 如何在 Android Studio 中设置兼容库
- python - 编译 Cython 扩展后 Python traceback.format_tb 不能完全工作