首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python TypeError - MySQL executemany

Python TypeError - MySQL executemany
EN

Stack Overflow用户
提问于 2014-04-10 20:44:13
回答 1查看 249关注 0票数 4

我正在使用MySQLdb模块插入我的数据库。我有以下代码

代码语言:javascript
复制
      sqlString = """INSERT INTO PERFORMER (PERFORMER)
                     VALUES (%s)
                     WHERE NOT EXISTS (SELECT * FROM PERFORMER P
                                       WHERE P.PERFORMER = %s)"""
      data = [(c, c) for c in self._performers]
      self._cursor.executemany(sqlString, data)

基本上,我想要插入self._performers中尚未在PERFORMERS表中的条目(这只是一个名称列表)。但是我得到了下面的TypeError

代码语言:javascript
复制
TypeError: not all arguments converted during string formatting

全迹

代码语言:javascript
复制
Traceback (most recent call last):
File "tvGuide.py", line 437, in <module>
        processing.UpdatePerformers()
File "tvGuide.py", line 307, in UpdatePerformers
        self._cursor.executemany(sqlString, data)
File "C:\Python27\lib\site-packages\MySQLdb\cursors.py", line 246, in executemany
        self.errorhandler(self, TypeError, msg)
File "C:\Python27\lib\site-packages\MySQLdb\connections.py", line 36, in defaulterrorhandler
        raise errorclass, errorvalue TypeError: not all arguments converted during string formatting

self._performers列表很长,但是下面是前几个条目的示例

代码语言:javascript
复制
['Lucy Alexander', 'Martin Roberts', 'Alistair Appleton', 'Zak Bagans', 'Aaron Goodwin', 'Nick Groff', 'John Zaffis', 'Ellen Pompeo', 'Patrick Dempsey',
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-11 07:34:55

+1对于Nacho来说,TypeError有点像红鲱鱼,在VALUES子句中使用WHERE是非法的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22998621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档