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.