0

これは、Pythonでデータベースからレコードを処理する方法です

コード.py

conn = cx_Oracle.connect('pass the connection string')
cursor = conn.cursor()
sql = "select * from emp table"
cursor.execute(sql)
result =cursor.fetchall()

for row in result:
     name = row[0]
     age  = row[1]

質問: 行 [0]、行 [1] としてハードコーディングする代わりに、列名を直接取得する方法はありますか?

4

1 に答える 1

1

には属性cursorがあります。.descriptionそれは一連のタプルです。各タプルは結果の列を記述し、その最初の値は名前です。

これを使用して、各行の辞書を作成できます。

for x in result:
    row = { d[0].lower(): col for (d, col) in zip(cursor.description, x) }
    name = row['name']
    age = row['age']

この属性については、 Python DB API 2.0.descriptionで詳しく説明されています。

于 2012-09-27T21:57:16.110 に答える