gpt4 book ai didi

python cursor.execute 返回空

转载 作者:行者123 更新时间:2023-12-03 21:31:57 31 4
gpt4 key购买 nike

我的 python 代码有问题,我想将其用于 REST API 服务器。

当前的问题是当我知道该值存在时,我的数据库查询返回 null

具体路径的代码:

@app.route('/data/active_predicted/<int:ticketId>', methods=['GET'])
def search_db_tickId_act(ticketId):
cursor = db.cursor()
db_query = cursor.execute("select * from active_predicted where ticketId=" + str(ticketId))
json_output = json.dumps(dict(cursor.fetchall()))
cursor.close()
if not cursor.fetchall():
return "Nothing found \n SQL Query: " + "select * from active_predicted where ticketId=" + str(ticketId)
else:
return str(cursor.fetchall())

当我访问这个 URL 时,我得到以下返回:

没有找到 SQL 查询:select * from active_predicted where ticketId=1324

当我插入这个 SQL 查询时,我得到了我想要的结果,1 行 2 列,但似乎程序找不到该行?

最佳答案

问题:

  • 正如@pvg 提到的,在查询数据库时你需要转义你的输入值;
  • 如果你想获取一个类似字典的结果,传递 dictionary=True初始化游标时;
  • 在您的原始代码中,您没有返回变量 json_output ;
  • 要仅获取一个结果,请使用 fetchone相反 fetchall ;
  • cursor.close()被调用,无论您之前是否已获取,您都无法从该游标中获取任何信息;
  • 使用 try-finally 确保游标始终关闭(最后)。

  • 这是固定代码:
    @app.route('/data/active_predicted/<int:ticketId>', methods=['GET'])
    def search_db_tickId_act(ticketId):
    try:
    cursor = db.cursor(dictionary=True)
    db_query = cursor.execute("select * from active_predicted where ticketId=%s LIMIT 1", ticketId)
    row = cursor.fetchone()
    if row:
    return json.dumps(row)
    else:
    return "Nothing found \n SQL Query: " + "select * from active_predicted where ticketId=" + str(ticketId)
    finally:
    cursor.close()

    关于python cursor.execute 返回空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41475624/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com