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
カーソルのdescription属性にリストの内包表記を使用して注文した列名のリストを作成することができます:「」それを行うにはPythonの方法がある本当に
column_names = [item[0] for item in cursor.description]
関連する問題
- 1. JavaでHibernateのクエリ結果からカラム名を取得するには?
- 2. LinQ結果セットのカラム数とカラム名を取得する
- 3. クエリ結果からヘッダ(カラム名)を削除する
- 4. sqlite3を使用してクエリ結果を取得
- 5. クエリからの結果カラムの追加
- 6. カラム値からカラム名を取得
- 7. 他のクエリの結果としてテーブル名のselect文からデータを取得
- 8. SQLクエリからテーブル名とカラム名を取得するString
- 9. カールを使用してサイトから結果を取得
- 10. javascriptを使用してstruts.xmlから結果を取得する
- 11. LIMIT句を使用したクエリから結果を取得する
- 12. カラム値に基づいたmysqlクエリ結果の取得
- 13. ランクに基づいてSQLクエリ結果からレコードを取得
- 14. hibernateを使用してpostgresqlからCSVとして結果を取得
- 15. SQLクエリの結果をmysqlトリガのテーブル名として使用
- 16. pymssqlを使用してCSVに書き込み、カラム名をヘッダとして使用
- 17. JSoupを使用してすべてのページから結果を取得
- 18. EasyRdfを使用してSPARQLクエリ結果を取得する方法
- 19. RabDBを使用してクエリ結果を取得できません
- 20. nodejs promiseまたはwaitを使用してsqlite3クエリ結果を取得する
- 21. int変数とMSSQLクエリ結果を比較するPython via pymssql
- 22. SQLQuery結果のIDカラムからHibernate Entityインスタンスを取得します。
- 23. LEFT JOINを使用してLINQクエリから正しい結果を取得する問題
- 24. キーを使用せずに配列から結果を取得
- 25. SQLクエリ結果を取得する方法を探して、結果から配列のIDをバインドするbindGrid
- 26. 2つ以上のテーブルの結果タイトルとしてカラム名を使用
- 27. 結果の列名と値を取得するクエリ?
- 28. 選択クエリから取得したMySQL結果セットの挿入?
- 29. リフレクションを使用してMVCのアクションから結果オブジェクトタイプを取得
- 30. Pythonを使用してウェブサイトから結果を取得できません
を(cursor.description) –
に参加。 .descriptionは7アイテムタプルのリストなので、 "、"。join(cursor.description)はそれを行いません。 – Robert