Search code examples
pythonpostgresqlpsycopg

psycopg - Get formatted sql instead of executing


I have a piece of Python code, that interacts with a PostgreSQL database via psycopg.

All literature warns against doing sql formatting by oneself, and recommends letting the driver do it. E.g.:

cur.execute('select name, age from people where name = %s;', ('ann',) )

The driver then formats the sql string. Let's say I don't want to execute anything, but I just want the fully formatted sql string. Is there any functionality for getting this formatted sql in the psycopg module?


Solution

  • you wold use function curs.mogrify():

    SQLstring = curs.mogrify('select name, age from people where name = %s;', ('ann',) )