Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何创建在下拉式虚线图组件中显示列名称的查询_Python_Sql Server_Pandas_Hyphen - Fatal编程技术网

Python 如何创建在下拉式虚线图组件中显示列名称的查询

Python 如何创建在下拉式虚线图组件中显示列名称的查询,python,sql-server,pandas,hyphen,Python,Sql Server,Pandas,Hyphen,我试图使用以下查询显示SQL Server Management Studio中表中的特定列名称: SELECT ServiceDropRate(All), Packet_DropRate_4G(%), Voice_DropRate_4G(%), InterFreq_SuccessRate_4G(%), Intra-RATHOSucccessRate(%), IntraFreq_SuccessRate_4G(%), FROM INFORMATION_SCHEMA.COLUMNS WHERE [m

我试图使用以下查询显示SQL Server Management Studio中表中的特定列名称:

SELECT ServiceDropRate(All), Packet_DropRate_4G(%), Voice_DropRate_4G(%), InterFreq_SuccessRate_4G(%), Intra-RATHOSucccessRate(%), IntraFreq_SuccessRate_4G(%), FROM INFORMATION_SCHEMA.COLUMNS WHERE [myDB].[dbo].[mnm_rotterdam_5_daily_details-20191216081027]
我还想在这一行中添加选项列名称:

options=[{'label': i['ServiceDropRate(All)'], 'value': i['ServiceDropRate(All)']} for i in lte_kpis],
这是我的全部代码:

import pandas as pd
import dash
import dash_core_components as dcc
import dash_html_components as html
from sqlalchemy import create_engine
import pyodbc

# connect db
engine = create_engine('mssql+pyodbc://WWX542337CDCD\SMARTRNO_EXPRESS/myDB?driver=SQL+Server+Native+Client+11.0')
cursor = engine.raw_connection().cursor()

external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']


lte_kpis = pd.read_sql('SELECT ServiceDropRate(All), Packet_DropRate_4G(%), Voice_DropRate_4G(%), InterFreq_SuccessRate_4G(%), Intra-RATHOSucccessRate(%), IntraFreq_SuccessRate_4G(%), FROM INFORMATION_SCHEMA.COLUMNS WHERE [myDB].[dbo].[mnm_rotterdam_5_daily_details-20191216081027]',
                       engine).to_dict(orient='records')
app = dash.Dash(__name__, external_stylesheets=external_stylesheets)

server = app.server

app.layout = html.Div([
    html.H2('Your KPIS'),
    dcc.Dropdown(
        id="myKPIS",
        options=[{'label': i['ServiceDropRate(All)'], 'value': i['ServiceDropRate(All)']} for i in lte_kpis],
        multi=True,
        value="ServiceDropRate(All)"
    ),


if __name__ == '__main__':
    app.run_server(debug=True)

问题是我在sql查询中遇到语法错误

这就是我发现的错误:

Traceback (most recent call last):
  File "C:\Users\mwx825326\PycharmProjects\MyReference\venv\lib\site-packages\sqlalchemy\engine\base.py", line 1245, in _execute_context
    self.dialect.do_execute(
  File "C:\Users\mwx825326\PycharmProjects\MyReference\venv\lib\site-packages\sqlalchemy\engine\default.py", line 581, in do_execute
    cursor.execute(statement, parameters)
pyodbc.ProgrammingError: ('42000', "[42000] [Microsoft][SQL Server Native Client 11.0][SQL Server]Incorrect syntax near ')'. (102) (SQLExecDirectW)")

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:/Users/mwx825326/PycharmProjects/MyReference/myGUI.py", line 18, in <module>
    lte_kpis = pd.read_sql('SELECT ServiceDropRate(All), Packet_DropRate_4G(%), Voice_DropRate_4G(%), InterFreq_SuccessRate_4G(%), Intra-RATHOSucccessRate(%), IntraFreq_SuccessRate_4G(%), FROM INFORMATION_SCHEMA.COLUMNS WHERE [myDB].[dbo].[mnm_rotterdam_5_daily_details-20191216081027]',
  File "C:\Users\mwx825326\PycharmProjects\MyReference\venv\lib\site-packages\pandas\io\sql.py", line 430, in read_sql
    return pandas_sql.read_query(
  File "C:\Users\mwx825326\PycharmProjects\MyReference\venv\lib\site-packages\pandas\io\sql.py", line 1218, in read_query
    result = self.execute(*args)
  File "C:\Users\mwx825326\PycharmProjects\MyReference\venv\lib\site-packages\pandas\io\sql.py", line 1087, in execute
    return self.connectable.execute(*args, **kwargs)
  File "C:\Users\mwx825326\PycharmProjects\MyReference\venv\lib\site-packages\sqlalchemy\engine\base.py", line 2182, in execute
    return connection.execute(statement, *multiparams, **params)
  File "C:\Users\mwx825326\PycharmProjects\MyReference\venv\lib\site-packages\sqlalchemy\engine\base.py", line 976, in execute
    return self._execute_text(object_, multiparams, params)
  File "C:\Users\mwx825326\PycharmProjects\MyReference\venv\lib\site-packages\sqlalchemy\engine\base.py", line 1143, in _execute_text
    ret = self._execute_context(
  File "C:\Users\mwx825326\PycharmProjects\MyReference\venv\lib\site-packages\sqlalchemy\engine\base.py", line 1249, in _execute_context
    self._handle_dbapi_exception(
  File "C:\Users\mwx825326\PycharmProjects\MyReference\venv\lib\site-packages\sqlalchemy\engine\base.py", line 1476, in _handle_dbapi_exception
    util.raise_from_cause(sqlalchemy_exception, exc_info)
  File "C:\Users\mwx825326\PycharmProjects\MyReference\venv\lib\site-packages\sqlalchemy\util\compat.py", line 398, in raise_from_cause
    reraise(type(exception), exception, tb=exc_tb, cause=cause)
  File "C:\Users\mwx825326\PycharmProjects\MyReference\venv\lib\site-packages\sqlalchemy\util\compat.py", line 152, in reraise
    raise value.with_traceback(tb)
  File "C:\Users\mwx825326\PycharmProjects\MyReference\venv\lib\site-packages\sqlalchemy\engine\base.py", line 1245, in _execute_context
    self.dialect.do_execute(
  File "C:\Users\mwx825326\PycharmProjects\MyReference\venv\lib\site-packages\sqlalchemy\engine\default.py", line 581, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.ProgrammingError: (pyodbc.ProgrammingError) ('42000', "[42000] [Microsoft][SQL Server Native Client 11.0][SQL Server]Incorrect syntax near ')'. (102) (SQLExecDirectW)")
[SQL: SELECT ServiceDropRate(All), Packet_DropRate_4G(%), Voice_DropRate_4G(%), InterFreq_SuccessRate_4G(%), Intra-RATHOSucccessRate(%), IntraFreq_SuccessRate_4G(%), FROM INFORMATION_SCHEMA.COLUMNS WHERE [myDB].[dbo].[mnm_rotterdam_5_daily_details-20191216081027]]
(Background on this error at: http://sqlalche.me/e/f405)
回溯(最近一次呼叫最后一次):
文件“C:\Users\mwx825326\PycharmProjects\MyReference\venv\lib\site packages\sqlalchemy\engine\base.py”,第1245行,在执行上下文中
self.dialogue.do_执行(
文件“C:\Users\mwx825326\PycharmProjects\MyReference\venv\lib\site packages\sqlalchemy\engine\default.py”,第581行,在do\u execute中
cursor.execute(语句、参数)
pyodbc.ProgrammingError:('42000',“[42000][Microsoft][SQL Server本机客户端11.0][SQL Server]附近的语法不正确”)。(102)(SQLExecDirectW)”
上述异常是以下异常的直接原因:
回溯(最近一次呼叫最后一次):
文件“C:/Users/mwx825326/PycharmProjects/MyReference/myGUI.py”,第18行,在
lte_KPI=pd.read_sql('从[myDB].[dbo].[mnm_rotterdam_5_daily_details-2019121608127]中的信息模式列中选择ServiceDropRate(All)、Packet_DropRate_4G(%)、Voice_DropRate_4G(%)、Interreq_SuccessRate_4G(%)、Intra RathSuccessrate(%)、Intra Rate(%)、IntraFreq_SuccessRate_4G(%),
文件“C:\Users\mwx825326\PycharmProjects\MyReference\venv\lib\site packages\pandas\io\sql.py”,第430行,以read\u sql格式
返回\u sql.read\u查询(
读取查询中的文件“C:\Users\mwx825326\PycharmProjects\MyReference\venv\lib\site packages\pandas\io\sql.py”,第1218行
结果=self.execute(*args)
文件“C:\Users\mwx825326\PycharmProjects\MyReference\venv\lib\site packages\pandas\io\sql.py”,第1087行,在execute中
返回self.connectable.execute(*args,**kwargs)
文件“C:\Users\mwx825326\PycharmProjects\MyReference\venv\lib\site packages\sqlalchemy\engine\base.py”,执行中的第2182行
返回connection.execute(语句,*multiparams,**params)
文件“C:\Users\mwx825326\PycharmProjects\MyReference\venv\lib\site packages\sqlalchemy\engine\base.py”,第976行,在execute中
返回self.\u执行\u文本(对象、多内存、参数)
文件“C:\Users\mwx825326\PycharmProjects\MyReference\venv\lib\site packages\sqlalchemy\engine\base.py”,第1143行,文本为
ret=自我执行上下文(
文件“C:\Users\mwx825326\PycharmProjects\MyReference\venv\lib\site packages\sqlalchemy\engine\base.py”,第1249行,在执行上下文中
self.\u handle\u dbapi\u异常(
文件“C:\Users\mwx825326\PycharmProjects\MyReference\venv\lib\site packages\sqlalchemy\engine\base.py”,第1476行,在_handle\u dbapi\u异常中
util.raise\u from\u cause(sqlalchemy\u异常,exc\u信息)
文件“C:\Users\mwx825326\PycharmProjects\MyReference\venv\lib\site packages\sqlalchemy\util\compat.py”,第398行,从原因开始
重新释放(类型(异常),异常,tb=exc\U tb,原因=原因)
文件“C:\Users\mwx825326\PycharmProjects\MyReference\venv\lib\site packages\sqlalchemy\util\compat.py”,第152行,在reraise中
通过_回溯(tb)提升值
文件“C:\Users\mwx825326\PycharmProjects\MyReference\venv\lib\site packages\sqlalchemy\engine\base.py”,第1245行,在执行上下文中
self.dialogue.do_执行(
文件“C:\Users\mwx825326\PycharmProjects\MyReference\venv\lib\site packages\sqlalchemy\engine\default.py”,第581行,在do\u execute中
cursor.execute(语句、参数)
sqlalchemy.exc.ProgrammingError:(pyodbc.ProgrammingError)('42000',“[42000][Microsoft][SQL Server原生客户端11.0][SQL Server]附近语法不正确”)。(102)(SQLExecDirectW)”
[SQL:从[myDB].[dbo].[mnm_鹿特丹5_每日详细信息-20191216081027]的信息模式列中选择ServiceDropRate(All)、Packet_DropRate_4G(%)、Voice_DropRate_4G(%)、InterFreq_SuccessRate_4G(%)、InterFreq_SuccessRate_4G(%)、Intra Rathosuccessrate(%)、IntraFreq_SuccessRate_4G(%)]
(有关此错误的背景信息,请访问:http://sqlalche.me/e/f405)

因此,任何人都有解决方案???

请指定目前的问题所在。我认为您应该尝试将数据帧/表存储在一个隐藏的div中,并使用回调更新下拉选项。@FBruzzesi感谢您的支持,我很高兴为我提供一些简单的方法。