1. ホーム
  2. python

[解決済み] pyodbcカーソルの結果をpythonの辞書として出力する

2023-02-08 19:17:31

質問

pyodbcカーソルの出力( .fetchone , .fetchmany または .fetchall ) をPythonの辞書として使うことはできますか?

私はbottlepyを使用していて、JSONとしてそれを返すことができるようにdictを返す必要があります。

どのように解決するのですか?

前もってカラムがわからない場合は カーソル.説明 を使用してカラム名のリストを作成し zip を各行で実行し、辞書のリストを作成します。例では、接続とクエリが構築されているものとします。

>>> cursor = connection.cursor().execute(sql)
>>> columns = [column[0] for column in cursor.description]
>>> print(columns)
['name', 'create_date']
>>> results = []
>>> for row in cursor.fetchall():
...     results.append(dict(zip(columns, row)))
...
>>> print(results)
[{'create_date': datetime.datetime(2003, 4, 8, 9, 13, 36, 390000), 'name': u'master'},   
 {'create_date': datetime.datetime(2013, 1, 30, 12, 31, 40, 340000), 'name': u'tempdb'},
 {'create_date': datetime.datetime(2003, 4, 8, 9, 13, 36, 390000), 'name': u'model'},     
 {'create_date': datetime.datetime(2010, 4, 2, 17, 35, 8, 970000), 'name': u'msdb'}]