Bonjour tout le monde,

je débute avec python. je dois effectuer une connexion a la BD oracle et exécuter une certaine requête. A partir du résultat de cette requête, je dois connaitre le datatype des données récupérées. Pour cela j'ai utilisé ce bout de code.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import cx_Oracle
import dataextract as tde
import os
 
#Connexion à la BD
con = cx_Oracle.connect('comping/comping@192.168.1.110/comping')
print 'ok'
 
#Creation de 2 list pour la recup des données
fieldnameslist = []
fieldnameslist1 = []
 
#les requetes
sql="select *  from c_invoice inv, c_bpartner par where inv.c_bpartner_id=par.c_bpartner_id "
sql1="select *  from c_invoiceline inv, m_product pro where inv.m_product_id=pro.m_product_id "
 
#Exécuter les requetes
curs=con.cursor()
curs1=con.cursor()
curs.execute(sql)
curs1.execute(sql1)
 
print 'ok pour l execution'
 
#Essayer de deviner le Type de données a partir de la première ligne
for row in curs:
        itemz = len(row.keys())/2
        #Normalement on doit avoir une petite idée sur le type des données
for k in row.keys():
            fieldnameslist.append(str(k) + '|' + str(type(row[k])).replace("<type '","").replace("'>","").replace("<class '","").replace('NoneType','str').replace('uuid.UUID','str') )
            break
 
 
 
con.close()
sauf que, quand j'exécute mon code, python ne reconnait pas row.keys() et lève une exception. le message d'erreur est
Traceback (most recent call last):
File "C:\Python27\Lib\SITE-P~1\PYTHON~2\pywin\framework\scriptutils.py", line 326, in RunScript
exec codeObject in __main__.__dict__
File "C:\Users\BMC\Desktop\extract\test.py", line 27, in <module>
itemz = len(row.keys())/2
AttributeError: 'tuple' object has no attribute 'keys'
pouvez vous m'aider s'il vous plait !!