我正在尝试运行 SQL 查询,但返回的结果不断返回,并带有括号和引号 ''
。
如果我查询多列,问题就会消失,但如果我只选择一列,问题就会再次出现。
我在谷歌上查了一下,目前没有任何运气。
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
关于python - 括号和引号被注入(inject)到 SQL 查询的返回结果中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58154303/