Corriger l'erreur str object has no attribute decode en Python

Manav Narula 14 avril 2022
Corriger l'erreur str object has no attribute decode en Python

En Python, chaque entité est considérée comme un objet, et chaque objet a des propriétés ou des fonctions qui lui sont associées, appelées attributs. L’opérateur point (.) est utilisé pour invoquer ces attributs.

En Python 2, l’attribut decode est associé aux objets string. Cette fonction nous permet de transformer les données encodées en leur chaîne d’origine. On peut encoder les données dans différents formats et spécifier le type d’encodage utilisé dans la fonction decode en paramètre.

Parfois, nous rencontrons cette erreur 'str' object has no attribute 'decode' en Python. Il s’agit d’une AttributeError, indiquant que l’attribut decode est absent de l’objet chaîne donné.

Nous obtenons cette erreur car, en Python 3, toutes les chaînes sont automatiquement des objets Unicode. Unicode est le format principalement utilisé pour encoder les données. Cette erreur est générée si quelqu’un essaie de décoder un objet encodé en Unicode dans Python 3.

Vous trouverez ci-dessous un exemple d’endroit où nous avons rencontré cette erreur.

s = "delftstack"
print(s.decode())

Production :

AttributeError: 'str' object has no attribute 'decode'

L’erreur s’affiche si nous décodons une chaîne en Python 3. Par conséquent, nous devons faire attention à l’objet à décoder et nous assurer qu’il n’est pas au format Unicode.

Nous pouvons supprimer cette erreur en supprimant la propriété decode de l’objet string. Une autre méthode consiste à encoder d’abord les données à l’aide de la fonction encode(), puis à les décoder. Cette méthode est redondante mais résout le problème.

Par example:

s = "delftstack"
print(s.encode().decode())

Production :

delftstack
Auteur: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Article connexe - Python String