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.
sauf que, quand j'exécute mon code, python ne reconnait pas row.keys() et lève une exception. le message d'erreur est
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()
pouvez vous m'aider s'il vous plait !!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'
Partager