使用pymssql获取查询结果的列名
有没有办法从pymssql的结果中获取列名?如果我设置as_dict=True,我会得到一个字典,这个字典里包含了所有的列标题,但因为它是字典,所以列名的顺序是不固定的。
4 个回答
4
要把列名放在一行,用逗号分隔开。
colNames = ""
for i in range(len(cursor.description)):
desc = cursor.description[i]
if i == 0:
colNames = str(desc[0])
else:
colNames += ',' + str(desc[0])
print colNames
另外,你可以把列名放到一个列表里,然后用 .join 方法把它们合成一个字符串。
colNameList = []
for i in range(len(cursor.description)):
desc = cursor.description[i]
colNameList.append(desc[0])
colNames = ','.join(colNameList)
print colNames
7
你可以通过对游标描述属性使用列表推导式,来创建一个有序的列名列表:
column_names = [item[0] for item in cursor.description]
16
pymssql声称支持Python的DB-API,所以你应该能够从你的游标对象中获取.description
这个属性。
.description
This read-only attribute is a sequence of 7-item sequences. Each of these sequences contains information describing one result column: (name, type_code, display_size, internal_size, precision, scale, null_ok)
所以,每个“内部”序列中的第一个项目就是每一列的名称。