Как лучше защитить sql запрос от sql injection средствами python?
Вообще, если хотите сделать правильно, то нужно использовать связывание переменных с запросом (bind variables). Это:
1 - решает проблему sql-инъекции. 2 - способствует повышению производительности, т.к. запрос парсится в субд 1 раз и затем уже просто переиспользуется с новыми значениями переменных.
В статьях, которые вам подкинули про это есть. Это важно не только для python, но и вообще везде, поэтому стоит запомнить один раз. Используйте bind variables.
Пожалуйста, не изобретайте велосипед. 
Для начала задумайтесь, как происходит инъекция? Как зловредный код попадает в SQL-базу? 
Затем подробнее прочитайте про WEB-фреймворки и ORM. 
Например Django - очень развитый фреймворк в плане security и у него вполне пригодный ORM.