J'ai une instance et je veux obtenir une représentation Unicode de celle-ci. La fonction Unicode () n'accepte que les chaînes de caractères ou les tampons, de sorte que j'obtiens une erreur si je passe l'instance directement.
J'ai essayé :
document = self.grammar.application.ActiveDocument
style_map = [( unicode(s, 'utf-8'), s) for s in document.Styles]
self.styles.set(dict(style_map))
J'obtiens cette erreur :
style_map = [( unicode(s, 'utf-8'), s) for s in document.Styles]
TypeError: coercing to Unicode: need string or buffer, instance found
Je me demande comment convertir ces instances en représentations de chaînes Unicode. Je n'ai pas implémenté les objets. J'y accède par l'intermédiaire de l'interface COM.
Contexto:
Il s'agit d'un code permettant d'accéder aux styles de formatage disponibles dans un document Word en utilisant Python à travers une interface COM. Si j'essaie simplement de convertir les objets en chaînes ASCII, j'obtiens l'erreur suivante :
style_map = [( unicode(s), s) for s in document.Styles]
File "C:\Python26\lib\site-packages\win32com\client\dynamic.py", line 207, in __str__ return str(self.__call__())
UnicodeEncodeError: 'ascii' codec can't encode character u'\xf3' in position 3: ordinal not in range(128)
Je préférerais traiter le problème dans mon code, plutôt que de modifier un code Win32. Comme vous pouvez le voir, j'utilise Python 2.6.