当我从数据库中取出主键时,它们被放在括号中,我不能在以后的代码中使用它们

2024-05-06 04:18:59 发布

您现在位置:Python中文网/ 问答频道 /正文

import mysql.connector
config = {
    'user': 'root',
    'password': '*******',
    'host': '127.0.0.1',
    'database': 'mydb',
    'raise_on_warnings': True
  }
pupilids=("SELECT idpupil FROM pupil Where Hm_idhm = 'GJM'")
cursor.execute(pupilids)
v=cursor.fetchall() 
v=str(v)

这是我的代码的一部分,来自一个更大的prodject,但本质上,我需要获取这个值列表,当我执行它时,将它一个接一个地放入另一个查询中。 名单:

[(1525,), (1565,), (1588,)]

但是当我把它放到查询中

global pupilids
    global B
    print(pupilids[0])
    Pupil_name = ("SELECT Name, house, hm_idhm from Pupil Where idpupil ='"+str(pupilids[0])+"'")
    cursor.execute(Pupil_name)
    v=cursor.fetchall()
    print(v)
    showinfo("Window", v )

由于列表中的括号,没有出现任何问题。我有没有办法解决这个问题,或者我完蛋了。任何帮助都将非常感谢,如果你需要更多的信息,我可以提供

作为参考,当我在sql shell中运行它时,它会生成以下内容:

+---------+
| idpupil |
+---------+
|    1525 |
|    1565 |
|    1588 |
+---------+

Tags: nameimport列表executewhereselectglobalcursor