Dash python : 如何用csv内容填充dcc.dropdown?



我想用python和Dash创建一个Web应用程序。我尝试的第一个是创建一个下拉列表。

我有这些数据:

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'

你能告诉我为什么吗?

代码中存在一些问题:

  1. 您必须为您的达世币应用程序分配一个名称,例如app = dash.Dash('app_name')

  2. 您的 csv 具有混合分隔符(,在标题中,;在元组中(

  3. 下拉选项语法{'label: 'somelabel', 'value':'somevalue'},例如(参考下拉示例和参考(

options=[
{'label': 'New York City', 'value': 'NYC'},
{'label': 'Montreal', 'value': 'MTL'},
{'label': 'San Francisco', 'value': 'SF'}
],
  1. 您必须将组件分配给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)

最新更新