我正在尝试运行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

10-04 15:39