如何使用Dash、pandas、mysql和python填充下拉列表

如何使用Dash、pandas、mysql和python填充下拉列表,python,mysql,pandas,flask,Python,Mysql,Pandas,Flask,我正在尝试使用dash\u core\u组件htmlpythonmysql 这是我的连接dbCon import MySQLdb from sqlalchemy import types, create_engine # MySQL Connection MYSQL_USER = 'root' MYSQL_PASSWORD = 'xxxxxxxxxx' MYSQL_HOST_IP = 'xxxxxxxxxx' MYSQL_PORT = 3306 MYSQL_DATABASE = 'gov_tr

我正在尝试使用
dash\u core\u组件
html
python
mysql

这是我的连接
dbCon

import MySQLdb
from sqlalchemy import types, create_engine

# MySQL Connection
MYSQL_USER = 'root'
MYSQL_PASSWORD = 'xxxxxxxxxx'
MYSQL_HOST_IP = 'xxxxxxxxxx'
MYSQL_PORT = 3306
MYSQL_DATABASE = 'gov_tracker_db'
govtracker_table = 'gov_tracker'  # table you want to save

engine = create_engine('mysql+mysqlconnector://' + MYSQL_USER + ':' + MYSQL_PASSWORD + '@' + MYSQL_HOST_IP + ':' + str(
    MYSQL_PORT) + '/' + MYSQL_DATABASE, echo=False)

con = MySQLdb.connect(user=MYSQL_USER, passwd=MYSQL_PASSWORD, host=MYSQL_HOST_IP, db=MYSQL_DATABASE)
这是我的
myPandas
read
myPandas

from dbCon import engine
import pandas as pd

site_code_col = pd.read_sql('SELECT site_code FROM gov_tracker', engine).dropna().to_dict(orient='records')
col_val = pd.read_sql('SELECT pending, COUNT(*) AS DuplicatesCount FROM gov_tracker', engine).to_dict(orient='records')
pending_col = pd.read_sql('SELECT pending FROM gov_tracker', engine).drop_duplicates().dropna().to_dict(orient='records')
col_name = pd.read_sql('EXPLAIN gov_tracker', engine).to_dict(orient='records')
这是我的应用程序
app

import dash
import dash_core_components as dcc
import dash_html_components as html
from myPandas import site_code_col, col_val, col_name

app = dash.Dash(__name__)

app.layout = html.Div([

    html.H1(children='ComboBox'),

    html.Div(children='''Choose'''),

    html.Label('Site Code'),

    dcc.Dropdown(
        id="scInput",
        options=[{'label': i['site_code'], 'value': i['site_code']} for i in site_code_col],
        multi=True,
        value="MTL"
    ),

    dcc.Dropdown(
        id="colNames",
        options=[{'label': i['gov_tracker'], 'value': i['gov_tracker']} for i in col_name],
        multi=True,
        value="MTL"
    ),


    html.Button('Submit', id='button'),
    html.Div(id='scOutput'),

])

if __name__ == '__main__':
    app.run_server()
这就是我发现的错误

Traceback (most recent call last):
  File "C:/Users/DELL/PycharmProjects/Gov-Trac-Tool/app.py", line 25, in <module>
    options=[{'label': i['gov_tracker'], 'value': i['gov_tracker']} for i in col_name],
  File "C:/Users/DELL/PycharmProjects/Gov-Trac-Tool/app.py", line 25, in <listcomp>
    options=[{'label': i['gov_tracker'], 'value': i['gov_tracker']} for i in col_name],
KeyError: 'gov_tracker'
回溯(最近一次呼叫最后一次):
文件“C:/Users/DELL/PycharmProjects/Gov-Trac-Tool/app.py”,第25行,在
选项=[{'label':i['gov_tracker'],'value':i['gov_tracker']}表示列名称中的i],
文件“C:/Users/DELL/PycharmProjects/Gov-Trac-Tool/app.py”,第25行,在
选项=[{'label':i['gov_tracker'],'value':i['gov_tracker']}表示列名称中的i],
KeyError:“政府跟踪器”
注意:'gov_tracker'是表名,其中包含我需要在组合框中填充的列

这是第一部分,第二部分是如何与
Flask

交互访问
数据帧
应该像
[{'label':i,'value':gov_tracker[i]}那样访问列名中的i
<代码>标签将是
i
,列名和
将是列内容
i['gov\u tracker']
表示,您正在访问
gov\u tracker
上的某个对象
i
i
一栏没有
=
gov\u tracker
,因此
KeyError:“gov\u tracker”
@Trenton\u M感谢bro在关注您的评论后对我的支持
[{'label]:i['Field'],'value':i['Field']}这对我有用:-)很高兴能帮上忙。祝你好运