我正在尝试运行SQL查询,但是返回的结果始终带有括号和引号''
。
如果我查询多列,问题就消失了,但是如果我只选择一列,问题就回来了。
我在Google周围逛了一圈,目前还没有任何运气。
import mysql.connector
mydb = mysql.connector.connect(
host="xxxxxxxx",
user="xxxxxxxx",
passwd="xxxxxxxx",
database="vmware"
)
query_string = "select UserID FROM VM WHERE CommissionStatus='commissioned';"
mycursor = mydb.cursor()
mycursor.execute(query_string)
ReturnedUser_id = []
for (User_id) in mycursor:
ReturnedUser_id.append(User_id)
print(User_id)
问题似乎在于循环。在下面的情况下,我选择了多列,没有问题
for (User_id, VMName, VMTemplate) in mycursor:
ReturnedUser_id.append(User_id)
ReturnedVMName.append(VMName)
ReturnedVMTemplate.append(VMTemplate)
print(User_id)
输出:
32645845
32589456
32688145
而且没有烦人的引号,方括号或逗号。
只要查询一列,此问题就会再次出现在返回的结果中。
for (User_id) in mycursor:
ReturnedUser_id.append(User_id)
print(User_id)
但是只打印一列:
('32645845',)
('32589456',)
('32688145',)
最佳答案
问题在于语法for (User_id) in mycursor:
与for User_id in mycursor:
相同,这里mycursor
是元组列表。为了在1个元素的元组上使用循环,您需要使用for (User_id,) in mycursor:
。
例如:
a = [(1,),(2,),(3,)]
for i in a:
print(i)
#(1,)
#(2,)
#(3,)
for (i,) in a:
print(i)
#1
#2
#3