mit Python 2.6.5 und Python-ldap 2.3.10, habe ich das folgende Problem: Unter bestimmten Umständen löst meine Anwendung ein ldap.LDAPError, oder um genauer zu sein, ein ldap.INVALID_SYNTAX Fehler. Ich erhalte diesen Fehler und möchte die angehängte Nachricht verarbeiten. Jetzt kann ich etwas tun:python ldap.LDAPError Objekt lehnt den Zugriff auf Wörterbuch
try:
some_ldap_function(*args,connection=con,**kwargs)
except ldap.INVALID_SYNTAX,e:
print e
Das gibt mir
{'info': 'feeClass: value #0 invalid per syntax', 'desc': 'Invalid syntax'}
Nun ist dies eine dictrionary, und soweit ich verstehen, sollte ich in der Lage sein, etwas zu tun, wie
print e['info']
was nicht der Fall ist. Stattdessen erhalte ich eine TypeError Exception: Sequenz-Index muss ganzzahlig sein, nicht 'str'
Was ist hier falsch?
kühlen. Um zu bekommen, was ich will, muss ich nur e.args [0] ['info'] drucken. – Isaac
Ich sehe: anscheinend haben sie wirklich ein Wörterbuch in das Ausnahmeargument eingefügt. Das weicht von der Konvention ab, dass args [0] eine Zeichenkette sein sollte. –