Partage
  • Partager sur Facebook
  • Partager sur Twitter

comparaison de chaine entre python et python3

Type str doesn't support the buffer API

    1 janvier 2017 à 17:57:43

    bonjour j'ai ce message d'erreur alors je tente de comparer une chaîne et à une autre chaîne qui arrive depuis un arduino.

    pi@raspberrypi:~ $ ./input-comm-to-domoticz.py
    Traceback (most recent call last):
      File "./input-comm-to-domoticz.py", line 12, in <module>
        if "entree-12" in message :
    TypeError: Type str doesn't support the buffer API

    alors que je fais mes tests sur python cela fonctionne alors qu'en python3 cela ne fonctionne plus et il me faut des bibliothèques de python 3 pour la suite de mon code.

    merci pour votre aide.

    • Partager sur Facebook
    • Partager sur Twitter
      1 janvier 2017 à 19:15:59

      Bonsoir,

      Le problème ne vient pas de la comparaison, mais du fait que tu utilises un type str là où un bytes est attendu (pour écrire dans un fichier en mode binaire ou sur une socket par exemple). Tu peux passer d'une str vers un objet bytes via sa méthode encode.

      • Partager sur Facebook
      • Partager sur Twitter
        1 janvier 2017 à 21:21:08

        ok super

        avant : 

        while 1 :
                message = ser.readline()
        
                if "entree-12" in message :
        
                        print("condition ok")
                        print("entree 12 active")
                else :
        
                print(message)
        

        ne fonctionne pas, il faut specifier que la condition attend un objet bytes

        apres:

        while 1 :
                message = ser.readline()
        
                if (b"entree-12") in message :
        
                        print("condition ok")
                        print("entree 12 active")
                else :
        
                print(message)
        

        une paire de parenthèse et un petit b peuvent ainsi te mettre en déroute. avec un peu de chance ce poste d'autres non expert dans mon genre.

        merci les gas. 

        • Partager sur Facebook
        • Partager sur Twitter

        comparaison de chaine entre python et python3

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown