Thread: I wish I could pass bound variables as a dictionary not a list
Every once in a while, I have to write a big gnarly query like cursor.execute(""" select * from table1 where (%s) > 99 and ... """, [a, a, b, b, c, c, a, a, b]) The point being that I have to repeat lots of parameters because I use them in several where-clauses. It would make these queries vastly easier to read and debug if I could pass in bound variables as a dictionary, rather than as a tuple. Is this possible? Matt -- W. Matthew Wilson matt@tplus1.com http://tplus1.com
On Tuesday, July 19, 2011 5:24:06 pm W. Matthew Wilson wrote: > Every once in a while, I have to write a big gnarly query like > > cursor.execute(""" > select * > from table1 > where (%s) > 99 > and ... > """, > > [a, a, b, b, c, c, a, a, b]) > > The point being that I have to repeat lots of parameters because I use > them in several where-clauses. > > It would make these queries vastly easier to read and debug if I could > pass in bound variables as a dictionary, rather than as a tuple. > > Is this possible? Yes See here: http://www.initd.org/psycopg/docs/usage.html#query-parameters > > Matt -- Adrian Klaver adrian.klaver@gmail.com