Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Mais aussi sur les technos front comme React, Angular, Typescript et Javascript en général.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

Pourquoi test_type = client.factory.create("ns0:ImportTypeDossier") me renvoie UnicodeEncodeError: 'ascii' codec?

+2 votes

Dans mon client soap, c'est la seule création de type de données qui coince.
Je ne comprends pas pourquoi l'erreur unicode arrive sans que ma variable soit initialisée.
Il me semble que la variable devrait contenir une valeur et que l'affichage de celle-ci puisse me remonter une erreur unicode? Qu'est-ce je comprends de travers?
Alors, pour que ce soit parlant :

from suds.client import Client
client = Client(url=mon_url, cache=None, faults=True)
test_type = client.factory.create("ns0:ImportTypeDossier")

Traceback (most recent call last):
  File "test_suds.py", line 56, in <module>
    test_type = client.factory.create("ns0:ImportTypeFichier")
  File "/usr/local/lib/python2.6/dist-packages/suds/client.py", line 238, in create
    setattr(result, e.name, e.name)
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 23: ordinal not in range(128)
demandé 16-Mar-2015 par knep (166 points)
edité 16-Mar-2015 par max

Faudrait que tu postes du code, c'est plus expressif

Fait mais les underscores ont sautés.

1 Réponse

+3 votes
 
Meilleure réponse

Ok, le pb vient de suds qui n'aime pas les caractères accentués dans les webservices.
Donc petite modif dans le client de suds:
setattr(result, e.name.encode('utf8'), e.name.encode('utf8'))

répondu 16-Mar-2015 par knep (166 points)
sélectionné 16-Mar-2015 par knep

Plus qu'à te valider ta réponse ;)

...