Câu lệnh thực thi của bạn có vẻ không đúng lắm. Sự hiểu biết của tôi là nó phải tuân theo mẫu cursor.execute( <select statement string>, <tuple>)
và bằng cách chỉ đặt một giá trị duy nhất vào vị trí tuple, nó thực sự chỉ là một chuỗi. Để làm cho đối số thứ hai trở thành kiểu dữ liệu chính xác, bạn cần đặt dấu phẩy vào đó, vì vậy câu lệnh của bạn sẽ trông giống như sau:
cursor.execute("""SELECT
* FROM hashes
WHERE hash=%s""",
(data, ))