DB API 2.0的值不提供這樣的能力。各種各樣的DB客戶端模塊提供的這種東西都是非標準的。
的API確實,但是,提供cursor.description
只讀與此信息屬性:
此只讀屬性是7項序列的序列。
每個這些序列中包含的信息描述一個結果 柱:
- 名稱
- 類型代碼
- display_size
- internal_size
- 精度
- 規模
- null_ok
個
前兩個項目(名稱和類型代碼)是強制性的,其他 5是可選的且被設定爲無如果沒有有意義的值可以是 提供。
<...>
所以,你可以這樣做:
for row in result:
result[(i for i,cd in enumerate(result.description) if cd[0]=='column_name').next()]
而羅嗦,只應調用一次,所以這是合理的這個移動到一個子程序:
def columns(cursor):
return {cd[0]:i for i,cd in enumerate(cursor.description)}
<...>
result=c.execute(...)
ccls=columns(result)
for row in result:
row[ccls['name']]
No.當使用SELECT語句時,API返回一個python「list」,而不是像'FirstName'那樣需要支持關鍵字索引的'dict' – JacobIRR
注意'cursor.execute'返回值在API規範中沒有指定(但是[是指定爲遊標本身](http://cx-oracle.readthedocs.io/en/latest/cursor.html#Cursor.execute)在'cx_Oracle'文檔中)。 –