我不知道如何使用 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 查询的主要内容,如果未能解决你的问题,请参考以下文章

我不知道如何使用 sdf 文件

我不知道如何将 UILabel 转换为 UIImage.[swift] [重复]

我不知道如何编写查询

我想反转堆栈,但我不知道如何使用递归来反转这个......如何在不使用递归的情况下反转堆栈

我是不是错误地使用了 GraphQL?我不知道它是如何向我发回数据的

我如何在 Windows 7 中启动服务 openOffice,我有这条线命令,但我不知道如何使用它