Возможно, вы столкнулись с этой проблемой, потому что параметры подставлены неверно. Попробуйте использовать встроенную функцию params :
cur.execute("""
INSERT INTO some_table (an_int, a_date, a_string)
VALUES (%s, %s, %s);
""",
(10, datetime.date(2005, 11, 18), "O'Reilly"))
Ваш пример станет:
@app.route("/price/compare", methods=["POST"])
def post():
data = request.json
cur = conn.cursor()
stock_r = {}
goat_r = None
query = """SELECT name,size,MIN(price::float) as price,link
FROM product
WHERE name like %(name)s AND size=%(size)s
GROUP BY price,name,size,link
"""
query_data = {
'name': '%{}%'.format(data['name']),
'size': data['size']
}
cur.execute(query, query_data)
stock_r = cur.fetchone()
return jsonify({"stock_site": stock_r, "goat_site": goat_r})
Несколько замечаний: - вы используете переменную goat_r
, но он не был объявлен - в блоке except
вы сначала вызвали raise
, что означает, что следующие два print
не будут выполнены