gpt4 book ai didi

python - 从 SQL 查询生成绘图数据表

转载 作者:太空宇宙 更新时间:2023-11-03 19:42:19 26 4
gpt4 key购买 nike

我对 dash 和 python 还很陌生,我目前正在尝试为 datatable 提供一个 callback,它从 SQL 中检索在我的电脑上。但是,我无法这样做。

知道为什么吗?我收到此错误:

columns = [{'num': i, 'id': i} for i in data.columns],data=[]
NameError: name 'data' is not defined

这是我到目前为止所实现的;


import pandas as pd
import dash
import dash_table
from dash.dependencies import Output, Input
import dash_core_components as dcc
import dash_html_components as html
from random import random
import plotly
import pyodbc
global data
def connectSQLServer(driver, server, db):
connSQLServer = pyodbc.connect(
r'DRIVER={' + driver + '};'
r'SERVER=' + server + ';'
r'DATABASE=' + db + ';'
r'Trusted_Connection=yes;',
autocommit=True
)
return connSQLServer


app = dash.Dash()

app.layout = html.Div([dash_table.DataTable(id='raw_data',

columns = [{'num': i, 'id': i} for i in data.columns],data=[]
#data = data.to_dict('records')
),
dcc.Interval(id='interval_component',
interval=1000,
n_intervals=0
)
])


@app.callback(Output('raw_data', 'data'), [Input('interval_component', 'n_intervals')])
def update_table(n_intervals):

dataSQL = [] # set an empty list
global data
sql_conn = connectSQLServer(
'ODBC Driver 13 for SQL Server', 'DESKTOP\SQL', 'display')
cursor = sql_conn.cursor()
cursor.execute("SELECT num,ID FROM dbo.stats")
rows = cursor.fetchall()
for row in rows:
dataSQL.append(list(row))
labels = ['num', 'id']
data = pd.DataFrame.from_records(dataSQL, columns=labels)
data = data.to_dict('records')
return {'data': [data]}


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

最佳答案

您已将 Output 设置为传递给 data 属性,因此您的返回值应该只是 data 变量,例如这个:

返回数据

通过将其放入字典中,Dash 正在寻找 data 属性的 data 属性,但该属性不存在,这就是为什么您会收到 data 未定义的错误。

关于python - 从 SQL 查询生成绘图数据表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60356343/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com