python - How to extend `psycopg2.extras.DictCursor`? -


i want use python3-psycopg2 (2.5.4) cursor can:

1) access query result in dict-like manner

2) log every sql executed cursor logging module automatically

i tried following code, didn't work, did wrong? can extend psycopg2.extensions.cursor, not allow me 1).

class loggingcursor(psycopg2.extras.dictcursor):     def __init__(self, *args, **kwargs):  # didn't work or         super().__init__(*args, **kwargs) # without these 2 lines      def execute(self, sql, args=none):         beautiful import app         # logger = blah blah         logger.debug(self.mogrify(sql, args).decode())         psycopg2.extensions.cursor.execute(self, sql, args)  cursor = db_conn.cursor(cursor_factory=loggingcursor) 

when cursor.execute(some_sql), gives me:

file "some_file.py", line 123, in some_function   some_var = cursor.fetchone() file "/usr/local/lib/python3.4/dist-packages/psycopg2/extras.py", line 63, in fetchone   res = super(dictcursorbase, self).fetchone() file "/usr/local/lib/python3.4/dist-packages/psycopg2/extras.py", line 139, in __init__   self._index = cursor.index  attributeerror: 'loggingcursor' object has no attribute 'index' 

how changing

psycopg2.extensions.cursor.execute(self, sql, args) 

to

super().execute(sql, args) 

so base class execute() method called?


Comments

Popular posts from this blog

java - Plugin org.apache.maven.plugins:maven-install-plugin:2.4 or one of its dependencies could not be resolved -

Round ImageView Android -

How can I utilize Yahoo Weather API in android -