Решение - параметризованные операторы, где вы будете делать что-то вроде этого:
db.execute('SELECT * FROM users WHERE username=:user;', {'user': 'john'})
Ваша клиентская библиотека SQL будет обрабатывать для вас кавычки и экранирование. Точные данные зависят от используемой вами библиотеки (например, если вашей СУБД является PostgreSQL, это может быть библиотека psycopg2).