【问题标题】:Issue with Dropdown pulling data from SQL in Python Dash下拉从 Python Dash 中的 SQL 中提取数据的问题
【发布时间】:2020-05-15 19:08:10
【问题描述】:

我在下拉列表和 sql 方面遇到了一些问题,我想用 sql 中的选项填充下拉列表。

我没有收到任何错误,但我在下拉列表中得到的只是数据库中销售类别的列的名称。

这是在别处提取我的数据的 SQL:

def get_saletype_data():
    con = sqlite3.connect(str(DBFILE))
    saletypes = pd.read_sql_query("SELECT SaleCategory FROM SaleType", con)
    return saletypes

如果我打印输出,这就是它产生的结果:

  SaleCategory
0          Cut
1   Highlights
2    Gel Nails
3         Perm
4   Extensions
5       Fringe

这是应用程序中处理 sql 的代码:

salelist = get_saletype_data()
saletypedic = salelist.to_dict()

这是下拉菜单的代码:

dcc.Dropdown(
                    id="sales-type-dropdown",
                    options=[{'label':saletype, 'value':saletype} for saletype in saletypedic],
                ),

非常感谢对此的任何帮助,不知道为什么我只是在下拉列表中获得第一个选项

【问题讨论】:

  • 打印 saletypedic 会得到什么?此外,如果您使用 for 循环打印标签和值,您是否要将销售列表转换为字典,然后再将其发送到选项?您可以直接使用列表本身(即销售列表)
  • {'SaleCategory': {0: 'Cut', 1: 'Highlights', 2: 'Gel Nails', 3: 'Perm', 4: 'Extensions', 5: 'Fringe' }} 这是打印 saletypedic 的结果。好点,我第一次确实遇到了错误,但显然这是另一回事。即使不使用字典,我仍然会遇到仅显示 SaleCategory 而没有其他字段的问题。
  • 尝试打印(type(salestypes)) 应该是一个列表。基本上,您想要在选项下的下拉组件中获得的内容必须是您想要显示的值列表。
  • 这就是我这样做时得到的结果

标签: python sqlite plotly-dash


【解决方案1】:

下拉组件需要list 的值。 例如,

salelist = get_saletype_data()
salestypes = salelist['SaleCategory'].tolist()

现在在您的下拉列表中使用salestypes

dcc.Dropdown(
                id="sales-type-dropdown",
                options=[{'label':saletype, 'value':saletype} for saletype in saletypes],
            ),

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-01
    • 1970-01-01
    • 2020-07-08
    • 2019-11-14
    • 2020-03-19
    • 2019-09-09
    • 1970-01-01
    • 2020-05-27
    相关资源
    最近更新 更多