[英]Python TypeError - MySQL executemany
我正在使用MySQLdb模塊插入我的數據庫。 我有以下代碼
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
TypeError: not all arguments converted during string formatting
完整的痕跡
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列表很長,但這里是前幾個條目的示例
['Lucy Alexander', 'Martin Roberts', 'Alistair Appleton', 'Zak Bagans', 'Aaron Goodwin', 'Nick Groff', 'John Zaffis', 'Ellen Pompeo', 'Patrick Dempsey',
+1到Nacho,TypeError有點像redherring,使用帶有VALUES子句的WHERE是違法的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.