To pass identifiers to postgresql through psycopg use AsIs
from the extensions
module
from psycopg2.extensions import AsIs
import psycopg2
connection = psycopg2.connect(database="db", user="user")
cur = connection.cursor()
cur.mogrify(
'CREATE USER %s PASSWORD %s', (AsIs('someuser'), AsIs('somepassword'))
)
'CREATE USER someuser PASSWORD somepassword'
That works also for passing conditions to clauses like order by
:
cur.mogrify(
'select * from t order by %s', (AsIs('some_column, another column desc'),)
)
'select * from t order by some_column, another column desc'