Comparer des string en python

Résolu/Fermé
artemis0 Messages postés 903 Date d'inscription vendredi 3 janvier 2014 Statut Membre Dernière intervention 28 juillet 2018 - 18 juil. 2018 à 17:30
artemis0 Messages postés 903 Date d'inscription vendredi 3 janvier 2014 Statut Membre Dernière intervention 28 juillet 2018 - 28 juil. 2018 à 15:05
Bonjour,

J'ai un programme python qui récupère les SMS envoyés sur une raspberry pi (avec gammu). Donc je souhaite effectuer un traitement différent en fonction du sms envoyé. Le problème est que je ne parviens pas à comparer les sms reçus à une chaine de caractères même si ceux-ci sont identiques.

Par exemple, si j'envoie "help" par sms et que je compare à la string "help", cela me retourne false (les chaines sont différentes) alors que c'est le même mot !




je vous mets que des parties (les plus importantes) du programme sinon ce serait trop long.

là je récupère le message reçu dans une variable
sender_message = os.environ['SMS_1_TEXT']


j'enlève les accents, j'échappe les quotes, et je passe tout en minuscules
sender_message = unidecode.unidecode(sender_message.lower())
sender_message = json.dumps(sender_message)
sender_message = sender_message.replace("'", r"\'")


donc si le message reçu est "HELP", ou "HeLp", ça donnera "help"


Et là je regarde si le message reçu est "help" (c'est ce que j'ai envoyé !)
if sender_message == "help":
send_message ("c'est help", sender_number)
else:
send_message ("c'est pas help") , sender_number)


Le problème est que c'est toujours la boucle else qui s'exécute !

Pourquoi est-ce que if "help" = "help" donne false ??????

C'est un problème d'encodage des sms ?

Merci à ceux qui m'aideront.

1 réponse

Bonjour.

C'est à mon avis un problème lié au type de donnée, ce que tu réceptionnes doit être un type byte et non un str.

Pour le vérifier, la fonction type de python sur la valeur reçue devrait le confirmer, de là je te laisse regarder dans les méthodes de bytes celle permettant de convertir en str, pas difficile ^^
0
artemis0 Messages postés 903 Date d'inscription vendredi 3 janvier 2014 Statut Membre Dernière intervention 28 juillet 2018 178
28 juil. 2018 à 15:05
Le problème venait de
sender_message = json.dumps(sender_message)


J'ai résolu mon problème en l'enlevant
0