Python MySQLdb: Parametry zapytania jako nazwany słownik [zamknięte]
Chcę przekazać parametry zapytania docursor.execute()
metodaMySQLdb
jako nazwany słownik, taki, jaki jestuciekł z wtrysku SQL.
Czy możesz wyjaśnić, dlaczego to dajeKeyError
:
>>> c.execute('select id from users where username=%(user)s', {'user':'bob',})
KeyError: 'user'
Podręcznik MySQLdbhttp://mysql-python.sourceforge.net/MySQLdb.html mówi:
paramstyle
Ciąg znaków określający typ formatowania znaczników parametrów oczekiwany przez interfejs. Ustawić'format'
= Kody formatu ANSI C printf, np.'...WHERE name=%s'
. Jeśli używany jest obiekt odwzorowaniaconn.execute()
, wtedy interfejs faktycznie korzysta'pyformat'
= Kody rozszerzonego formatu Pythona, np.'...WHERE name=%(name)s'
. Jednak API nie pozwala obecnie na określenie więcej niż jednego stylu w stylu paramstyle.