Это работает:
ss = 'insert into images (file_path) values(?);'
dddd = (('dd1',), ('dd2',))
conn.executemany(ss, dddd)
Однако это не так:
s = 'insert into images (file_path) values (:v)'
ddddd = ({':v': 'dd11'}, {':v': 'dd22'})
conn.executemany(s, ddddd)
Traceback (most recent call last):
File "/Users/Wes/.virtualenvs/ppyy/lib/python2.7/site-packages/IPython/core/interactiveshell.py", line 3035, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-31-a999de59f73b>", line 1, in <module>
conn.executemany(s, ddddd)
ProgrammingError: You did not supply a value for binding 1.
Мне интересно, можно ли использовать именованные параметры с executemany и, если да, то как.
Документация в разделе 11.13.3 обычно говорит о параметрах, но не обсуждает два стиля параметров, которые описаны для других разновидностей .executexxx ().
Я выписал Выполнение Python sqlite3 с параметрами named и qmark , которое не относится к executemany.