Python MySQLdb: parámetros de consulta como un diccionario con nombre [cerrado]

Quiero pasar los parámetros de consulta acursor.execute() método deMySQLdb como un diccionario con nombre, tal que sonescapado de inyección SQL.

¿Puedes explicar por qué esto da?KeyError:

>>> c.execute('select id from users where username=%(user)s', {'user':'bob',})
KeyError: 'user'

MySQLdb manualhttp://mysql-python.sourceforge.net/MySQLdb.html dice:

paramstyle

Constante de cadena que indica el tipo de formato de marcador de parámetro esperado por la interfaz. Ajustado a'format' = Códigos de formato de impresión ANSI C, por ejemplo,'...WHERE name=%s'. Si se usa un objeto de mapeo paraconn.execute(), entonces la interfaz realmente usa'pyformat' = Códigos de formato extendido de Python, por ejemplo,'...WHERE name=%(name)s'. Sin embargo, la API no permite actualmente la especificación de más de un estilo en paramstyle.

Respuestas a la pregunta(2)

Su respuesta a la pregunta