【发布时间】:2019-11-14 07:06:54
【问题描述】:
我想创建一个搜索框,它将从用户那里获取输入,将其放入 SQL 查询中,并从查询的数据库中返回匹配的记录。
一切似乎都很好 - 除了我无法将我的查询结果显示为 Pandas 数据框。该脚本只在它应该显示对象时执行。但是,当我使用 print() 时,会显示我的结果。
当我这样做时,什么也没有发生:
query = pd.read_sql(sql_string, connection)
query
但这很好用:
query = pd.read_sql(sql_string, connection)
print(query)
这是我的代码:
import qgrid
from ipywidgets import widgets
from IPython.display import display
connection = 'connection:details'
text = widgets.Text()
display(text)
def handle_submit(a):
user_input = text.value
sp_char = "%"
sql_string = "SELECT a FROM my_database WHERE UPPER(a) LIKE UPPER('%s%s%s') % (sp_char,user_input,sp_char)
query = pd.read_sql(sql_string, connection)
query
text.on_submit(handle_submit)
我很确定我在 def 内部和外部移动变量的方式有问题,但我不确定从这里去哪里。
编辑:
用ipywidget函数解决display()
query = pd.read_sql(sql_string, connection)
display(qgrid.show_grid(query))
这就是我所需要的:)
【问题讨论】:
标签: python pandas jupyter-notebook ipywidgets