IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

unicode encode error


Sujet :

Python

  1. #1
    Membre confirmé
    Inscrit en
    Juin 2010
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 151
    Par défaut unicode encode error
    salut,jai écrit un petit script qui à partir des élements d'une colone de page xls va effectuer un traitement donnée.Le probléme c'est que suite à la récupération des élements de xls et les stocké dans une liste week_col ,je ne peux pas les introduire comme paramétre à la fonction de traitement personne_semaine:un message d'erreur unicode encode error ascii codec cant encode character u\xe9...ci dessous le bout de code du main.est ce que vous avez une idée?
    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
     
    def main(argv):
    	personne=""
    	semaine=""
    	base_1=[]
    	week_col_2=[]
    	chemin_rep_breakdown='d:\\xfile'
    	personne=input
    	fichier_xls='Breakdown_'+str(personne).upper()+'.xls'
    	if len(sys.argv)==1:
    		if fichier_xls in os.listdir(chemin_rep_breakdown):
    			book = xlrd.open_workbook(fichier_xls)
    			sh = book.sheet_by_index(2)
    			week_col=sh.col(13) #retourne une liste de la colone de la semaine
    			for indice_semaine in range(len(week_col)):
    				week_col[indice_semaine]=str(week_col[indice_semaine]).replace('number:',"").replace('.0',"").replace('text:u',"").replace('Week',"")
    			week_col=list(set(week_col))
    			for l in week_col:
    				if l !="''":
    					week_col_2.append(str(l))
    			for el in week_col_2:
    				out = el.decode('utf-8')
    			base_1=personne_semaine(fichier_xls,personne,out,base_1)
    			print base_1
    main()

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 828
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 828
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par maissaab Voir le message
    un message d'erreur unicode encode error ascii codec cant encode character u\xe9...ci dessous le bout de code du main.est ce que vous avez une idée?
    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
    def main(argv):
    	personne=""
    	semaine=""
    	base_1=[]
    	week_col_2=[]
    	chemin_rep_breakdown='d:\\xfile'
    	personne=input
    	fichier_xls='Breakdown_'+str(personne).upper()+'.xls'
    	if len(sys.argv)==1:
    		if fichier_xls in os.listdir(chemin_rep_breakdown):
    			book = xlrd.open_workbook(fichier_xls)
    			sh = book.sheet_by_index(2)
    			week_col=sh.col(13) #retourne une liste de la colone de la semaine
    			for indice_semaine in range(len(week_col)):
    				week_col[indice_semaine]=str(week_col[indice_semaine]).replace('number:',"").replace('.0',"").replace('text:u',"").replace('Week',"")
    			week_col=list(set(week_col))
    			for l in week_col:
    				if l !="''":
    					week_col_2.append(str(l))
    			for el in week_col_2:
    				out = el.decode('utf-8')
    			base_1=personne_semaine(fichier_xls,personne,out,base_1)
    			print base_1
    main()
    Surtout ne nous donne pas la ligne qui est en erreur, ça pourrait nous faciliter la tâche !!!
    Il est probable que ça arrive dans el.decode("utf-8") car le caractère 0xe9 (code ascii 233) n'est pas accepté dans cette fonction. Peut-être parce que le fichier xls lu n'est pas au format utf8.
    Essaye de mettre el.decode("latin-1") voir ce que ça donne...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2010
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 151
    Par défaut
    jai essayé en "latin-1" mais toujours le meme probléme jai meme enlevé la ligne out=el.encode('"latin-1"') et le probléme persiste...

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 828
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 828
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par maissaab Voir le message
    jai essayé en "latin-1" mais toujours le meme probléme jai meme enlevé la ligne out=el.encode('"latin-1"') et le probléme persiste...
    Et bien entendu, toujours sans nous donner le n° de ligne. Ben tu sais, si tu te sors pas les doigts, on ne va pas les sortir à ta place !!!

    Enlève ton "print base1"...

    Citation Envoyé par maissaab Voir le message
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for el in week_col_2:
    	out = el.decode('utf-8')
    En relisant ton code, je pige que dalle à cette boucle. Parce que si "out" n'est pas un objet dans lequel a été redéfini l'opérateur "=", il est écrasé à chaque tour de boucle...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. [Python 2.X] Unicode Encode Error en ecriture fichier txt
    Par Thierry_V dans le forum Général Python
    Réponses: 7
    Dernier message: 08/07/2014, 19h26
  2. Unicode Decode Error
    Par sésame69 dans le forum Général Python
    Réponses: 4
    Dernier message: 12/05/2014, 19h26
  3. Déterminer si un fichier est encodé en unicode
    Par Golzinne dans le forum Windows Forms
    Réponses: 4
    Dernier message: 14/01/2007, 17h40
  4. [vc++7]UNICODE et error LNK2019
    Par Dos dans le forum Visual C++
    Réponses: 4
    Dernier message: 06/10/2006, 19h41
  5. Probleme python 2.4 et matplotlib : unicode encode error
    Par patfrat dans le forum Calcul scientifique
    Réponses: 1
    Dernier message: 12/06/2005, 00h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo