有什麼辦法從pymssql結果中獲取列名?如果我指定as_dict = True,則返回一個包含所有列標題的字典,但由於它是字典,因此它們不會被排序。使用pymssql從查詢結果中獲取列名
6
A
回答
14
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)
所以,在每一個 「內部」 的序列的第一個項目是每個列的名稱。
0
這是一個基本的解決方案,需要優化,但下面的示例同時返回列標題和列值。
import pymssql
def return_mssql_dict(sql):
try:
con = pymssql.connect(server, user, password, database_name)
cur = con.cursor()
cur.execute(sql)
def return_dict_pair(row_item):
return_dict = {}
for column_name, row in zip(cur.description, row_item):
return_dict[column_name[0]] = row
return return_dict
return_list = []
for row in cur:
row_item = return_dict_pair(row)
return_list.append(row_item)
con.close()
return return_list
except Exception, e:
print '%s' % (e)
2
要獲得一個逗號隔開行的列名。
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
1
您可以使用列表中理解上的光標描述屬性排序的列名的列表:
column_names = [item[0] for item in cursor.description]
相關問題
- 1. 如何從Java中的Hibernate查詢結果中獲取列名?
- 2. 無法獲取列名pymssql
- 3. pymssql如何在查詢結果
- 4. 如何使用對象查詢語言從查詢中獲取結果列表
- 5. 從pg-promise查詢中獲取結果
- 6. 從AJAX查詢中獲取JSON結果
- 7. 使用sqlite3獲取查詢結果
- 8. 使用Legato gem獲取查詢結果
- 9. 從表中獲取的列值從SQL查詢的結果鍵
- 10. 查詢以獲取結果中的列名和值?
- 11. 使用pymssql將SQL Server查詢結果導出爲CSV
- 12. Pl/SQL - 從查詢中獲取列名
- 13. sqlalchemy查詢:結果列名
- 14. 如何使用VBA從Access模糊查詢中獲取結果?
- 15. 如何使用root從Android中獲取SQLite3查詢的結果
- 16. 使用LIMIT子句從查詢中獲取結果數
- 17. 使用will_paginate從Rails查詢中獲取總計結果數
- 18. 從查詢獲取結果的空值
- 19. 從c網站獲取查詢結果#
- 20. 複雜的mysql查詢(從結果中獲取結果)
- 21. 獲取結果Laravel查詢
- 22. 獲取SQL查詢結果
- 23. 查詢獲取結果
- 24. 查詢從表A和B中獲取結果,然後使用結果從表中獲取行A
- 25. 使用BCP查詢獲取列名稱
- 26. 使用SQL查詢獲取列名稱
- 27. 從Hibernate本機查詢的結果中獲取動態生成的列名稱
- 28. 獲取名稱是第二個查詢結果的列的值
- 29. 使用通配符從查詢中獲取列名稱
- 30. 從查詢結果列表
真的蟒蛇的方式來做到這一點是「」加入(cursor.description中) –
.description是7項元組的列表,所以「,」join(cursor.description)不會這樣做。 – Robert