My query on execution of this fails:
cursor.execute(\"SELECT name FROM products WHERE rating > %s AND category like \'Automation %\'\", (3));
Try to use format. If you have a string, against use %s you can use {}.
sql = "SELECT name FROM products WHERE rating > {0} AND category like 'Automation %'"
slq = sql.format(3)
cursor.execute(sql);
This is much better and compliance to new versions of python. And, plus, you can get annoyed of % in your query.
You can probably escape it using an extra %
:
cursor.execute("SELECT name FROM products WHERE rating > %s AND category like 'Automation %%'", (3));
This apparently works for MySQLdb and I would expect it to work for python-mysql as well. . .