Python MySQLdb: parâmetros de consulta como um dicionário nomeado [fechado]

Eu quero passar parâmetros de consulta paracursor.execute() método deMySQLdb como um dicionário nomeado, de tal forma que eles sãoescapou da injeção de SQL.

Você pode explicar por que isso dáKeyError:

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

Manual do MySQLdbhttp://mysql-python.sourceforge.net/MySQLdb.html diz:

paramstyle

Constante de string indicando o tipo de formatação do marcador de parâmetro esperado pela interface. Definido como'format' = Códigos de formato ANF C printf, por ex.'...WHERE name=%s'. Se um objeto de mapeamento for usado paraconn.execute(), então a interface realmente usa'pyformat' = Códigos de formato estendido do Python, por ex.'...WHERE name=%(name)s'. No entanto, a API não permite atualmente a especificação de mais de um estilo em paramstyle.

questionAnswers(2)

yourAnswerToTheQuestion