python+connexion base de donnée+cx_Oracle
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:
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
Citation:
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 !!