我不知道如何使用 sqlalchemy.create_engine 在 python 中编写 sql 查询
Posted
技术标签:
【中文标题】我不知道如何使用 sqlalchemy.create_engine 在 python 中编写 sql 查询【英文标题】:I don't know how to write sql query in python by using sqlalchemy.create_engine 【发布时间】:2020-11-30 10:15:36 【问题描述】:def check_data(self, code):
if self.is_table_exist():
sql = "SELECT check_item FROM '%s' WHERE code = '%s'"
check = self.engine_stock_item_all.execute(sql % (self.today, str(code))).fetchall()[0][0]
return check
def is_table_exist(self):
sql = "SELECT 1 FROM information_schema.tables WHERE table_schema ='stock_item_all' AND table_name = ''"
rows = self.engine_stock_item_all.execute(sql.format(self.today)).fetchall()
if rows:
return True
else:
return False
def make_daily_db(self):
code_name = self.daily_item['code_name']
df = pd.DataFrame(self.daily_item)
df_temp = df[['date', 'open', 'high', 'low', 'close', 'market_cap', 'volume', 'issued_shares', 'outstanding_shares']]
df_temp.to_sql(name=code_name, con=self.engine_daily_chart, if_exists='append')
sql = "UPDATE '%s' SET check_item=1 WHERE code_name = '%s'"
self.engine_stock_item_all.execute(sql % (self.today, code_name))
您好,现在我正在用 python(3.8) 开发交易程序。如果我运行程序,我会得到这样的错误。
错误
sqlalchemy.exc.ProgrammingError: (pymysql.err.ProgrammingError) (1064, “您的 SQL 语法有错误;请查看手册 对应于您的 MySQL 服务器版本,以便使用正确的语法 ''20201130' WHERE code = '155660'' 在第 1 行附近") [SQL: SELECT check_item FROM '20201130' WHERE code = '155660']
我调试了我的代码,但我认为我在定义 check_data、is_table_exist 和 make_daily_db 的方法上做错了。我整天尝试很多东西来解决这个问题,但我不知道如何更改我的代码。 请知道的人帮助我。我真的需要你的帮助。
【问题讨论】:
表名是不是字面上都是数字?如果是这样,请尝试使用反引号而不是单引号:SELECT check_item FROM `%s` WHERE code = '%s'
哦,非常感谢您的回答。我尝试了您的评论,然后...我遇到了另一个错误。进程以退出代码 -1073740791 (0xC0000409) 结束。我认为这是关于 PyQt5.EventLoop 的错误。如果您知道此问题,请提供更多帮助。无论如何,非常感谢!
好的,但是关于表名全是数字的原始问题从未得到回答,所以我的例子只是一个猜测。看起来该表可能不是数字,导致错误,但我认为日期和代码将在 WHERE 子句中,而 FROM 子句可能会使用stock_item_all
? ...我可能是错的,但我没有你知道的全貌。
我解决了这个问题。你的评论对我真的很有帮助。谢谢!
发现了什么? (也可能对其他人有所帮助)
【参考方案1】:
删除单引号
SELECT check_item FROM %s WHERE code = %s
【讨论】:
以上是关于我不知道如何使用 sqlalchemy.create_engine 在 python 中编写 sql 查询的主要内容,如果未能解决你的问题,请参考以下文章
我不知道如何将 UILabel 转换为 UIImage.[swift] [重复]
我想反转堆栈,但我不知道如何使用递归来反转这个......如何在不使用递归的情况下反转堆栈