This question already has an answer here:
Python MySQL Connector database query with %s fails
(1个答案)
2年前关闭。
在我的Cur4.execute文件中,我试图将歌手姓名与之前从cur3中获得的歌手姓名(名称= row [1])进行比较,
但我有错误:
我该如何解决?
(1个答案)
2年前关闭。
在我的Cur4.execute文件中,我试图将歌手姓名与之前从cur3中获得的歌手姓名(名称= row [1])进行比较,
但我有错误:
Traceback (most recent call last):
File "mp2.py", line 49, in <module>
cur4.execute('SELECT * FROM artist WHERE artist.name = %s',name)
File "C:\python27\lib\site-packages\MySQLdb\cursors.py", line 187, in execute
query = query % tuple([db.literal(item) for item in args])
TypeError: not all arguments converted during string formatting
我该如何解决?
cur3 = db.cursor()
cur3.execute("SELECT image.link, artist.name, detail.detail_id, FROM artist, detail, image WHERE image.artist_id = artist.artist_id AND detail.image_id = image.image_id LIMIT 1")
ans = cur3.fetchall()
for row in ans:
print row[1:]
name = row[1]
db.close()
cur4 = db.cursor()
cur4.execute('SELECT * FROM artist WHERE artist.name = %s',name)
最佳答案
我不是专家,但也许尝试代替cur4.execute('SELECT * FROM artist WHERE artist.name = %s',name)
,用括号将字符串格式区域括起来以得到以下信息:cur4.execute(('SELECT * FROM artist WHERE artist.name = %s',name))
编辑:实际上,我认为mshsayem是正确的(原始问题的评论)
关于python - 如何在python中使用sql中的字符串在python中执行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46869952/
10-09 08:48