Python MSSQL转储到列表

Python MSSQL转储到列表,python,pymssql,Python,Pymssql,我通过python从MS SQL中获取数据,方法是: cursor.execute('SELECT IP FROM Nodes WHERE NodeGroup=%s', 'group1') row = cursor.fetchall() return row 我将此作为回报: [('10.10.10.10',), ('10.10.10.20',), ('10.10.10.30',), ('10.10.10.40',)] 我需要它的格式为: ['10.10.10.10', '10.10.10

我通过python从MS SQL中获取数据,方法是:

cursor.execute('SELECT IP FROM Nodes WHERE NodeGroup=%s', 'group1')
row = cursor.fetchall()

return row
我将此作为回报:

[('10.10.10.10',), ('10.10.10.20',), ('10.10.10.30',), ('10.10.10.40',)]
我需要它的格式为:

['10.10.10.10', '10.10.10.20', '10.10.10.30', '10.10.10.40']

我假设这是一个元组的元组?如何从.fetchall()中获取所需的输出?

您可以将元组转换为列表

row = [ r[0] for r in cursor.fetchall() ]

[x[0]代表行中的x]
所以只需迭代fetchall并创建一个新列表?工作很好。返回大量行时是否存在速度问题?事实上,列表理解比遍历for循环快一点,但这仍然比仅返回元组列表要慢,明白吗。这种理解非常有效。除了fetchall()之外,游标还有其他选项可以生成更好的列表吗?意思是,给我我想要的输出,但是在DB select中,而不是进行理解或迭代?我认为您可以使用
游标(as_dict=True)
获得dict,但我不知道您是否可以获得列表(我对
pymssql
lib不太熟悉)。如果你觉得有用,你可以得到更多的信息