【问题标题】:Dash python : How to fill dcc.dropdown with csv content?Dash python:如何用 csv 内容填充 dcc.dropdown?
【发布时间】:2020-02-11 15:19:46
【问题描述】:

我想用 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'

你能告诉我为什么吗?

【问题讨论】:

    标签: python dropdown plotly-dash


    【解决方案1】:

    您的代码中存在一些问题:

    1. 您必须为您的 dash 应用程序指定一个名称,例如app = dash.Dash('app_name')

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

    3. 下拉选项语法是{'label: 'somelabel', 'value':'somevalue'},例如(参考Dropdown Examples and Reference

    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)
    
    

    【讨论】:

      猜你喜欢
      • 2023-03-05
      • 1970-01-01
      • 1970-01-01
      • 2017-02-20
      • 1970-01-01
      • 2022-01-23
      • 2017-01-08
      • 2017-04-12
      • 1970-01-01
      相关资源
      最近更新 更多