尝试在 psycopg2 查询中使用 Python 变量名

问题描述 投票:0回答:1

我正在编写一个 Python 程序的一部分,我在其中查询一个名为 stockNames 的 PostgreSQL 表,并使用结果根据用户输入打印信息。 stockNames 具有以下布局:

company     stockTicker     industry
Starbucks   SBUX            Food/Beverage
...

我还有一系列 Python 打印语句如下(也显示了简短的变量赋值):

stockChoice = input('Select a stock ticker: ')
stockPrice=soup.find(class_="Fw(b) Fz(36px) Mb(-4px) D(ib)")

print('\n' 'Company Name:')
print('Stock Ticker: ',stockChoice)
print('Industry: ' '\n')
print('\n' 'Date: ',)
print('Stock Price: ',stockPrice.text) 

我的目标是根据用户输入的股票代码查询公司名称和行业(在 Python 程序中存储为 stockChoice,但在 PostgreSQL 表 stockNames 中作为 stockTicker 存在)并在上面的打印行中打印该信息。我尝试在 psycopg2 查询中包含 stockChoice 变量,但收到以下错误:

cur.execute('SELECT company,stockTicker,industry FROM stockNames WHERE stockTicker=stockChoice;')

column "stockchoice" does not exist

错误是有道理的,因为 stockchoice 不是我原来的 stockNames 表中的一列,但我不确定如何解决这个问题。任何帮助将不胜感激。

python sql postgresql psycopg2
1个回答
0
投票

你可以为它使用一个占位符:

cur.execute('SELECT company,stockTicker,industry FROM stockNames WHERE stockTicker = %s', (stockchoice,))
© www.soinside.com 2019 - 2024. All rights reserved.