python - 精神科PG2 : Querying using an external Variable In a Dash App

标签 python plotly plotly-dash

@app.callback(
    Output('react-graph','figure'),
    [Input('reg_col','value')]
)

def update_graph(reg_col_name):

    print(reg_col_name)
    cur.execute("SELECT fruits FROM react_table WHERE region = 'reg_col_name'")
    fruits1=cur.fetchall()
    fruits_val = [fruit[0] for fruit in fruits1]
    cur.execute("SELECT sales FROM react_table WHERE region = 'reg_col_name'")
    sales1=cur.fetchall()
    sales_val = [sales[0] for sales in sales1]
    print(sales_val)
    clo = conn.rollback()


    return {
        'data': [go.Bar(
            x=fruits_val, y=sales_val, name='SF'
        )]
    }

我的应用程序有以下回调。输入是通过 reg_col_name 传递的区域名称。在打印 reg_col_name 时,我确实选择了输入选项并且它有效。

当我尝试使用相同的变量在 postgres 数据库中查询时,问题就出现了。在打印 sales_val 时,我应该收到销售数字列表,但输出只是 []

表格看起来像这样。

Region  Fruits   Sales
reg1    apple     67
reg1    banana    100
reg1    mango     38
reg1    pineapple 78
reg1    peach     60
reg1    watermelon63
reg2    apple     10
reg2    banana    64
reg2    mango     42
reg2    pineapple 16
reg2    peach     68
reg2    watermelon21
reg3    apple     7
reg3    banana    59
reg3    mango     72
reg3    pineapple 4
reg3    peach     96
reg3    watermelon63
reg4    apple     83
reg4    banana    32
reg4    mango     17
reg4    pineapple 20
reg4    peach     83
reg4    watermelon71

是否与rollback()函数使用不当有关?

最佳答案

代码将 reg_col_name 作为文字字符串传递给查询。为了pass the variable value as a parameter你会这样做:

cur.execute("SELECT fruits FROM react_table WHERE region = (%s)", (reg_col_name,))

如果您想避免执行两个查询,您的函数可以这样开始:

def update_graph(reg_col_name):
    cur.execute("SELECT fruits, sales FROM react_table WHERE region = (%s)", (reg_col_name,))
    result = cur.fetchall()
    fruits_val, sales_val = zip(*result)

如果您需要将 fruits_valsales_val 作为列表,您仍然可以随后将它们转换:

fruits_val = list(fruits_val)
sales_val = list(sales_val)

关于python - 精神科PG2 : Querying using an external Variable In a Dash App,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51168680/

相关文章:

r - Plotly:如何使用 add_annotations 设置箭头的样式和颜色?

python - Plotly-Dash:如何在 plotly dash 中为悬停功能编写交互式回调代码

python - Python 中破折号的计时器事件

python - 如何调用需要 "quotes"字符串的函数?

javascript - 串扰+传单+plotly-非持久选择

python - 如何将 pysvn 包含并链接到我的 python 脚本?

python - Plotly:如何绘制具有跨不同列的匹配行的 Sankey 图?

Python:如何从for循环返回数据?

python - pandas-read_excel 语法错误

python - 在 Hadoop UDF 输出中保留列数据类型(流)