Comment puis-je convertir une chaîne en tampon dans Python 3.1?
Je tente de tuyau de quelque chose à un subprocess
à l'aide de la ligne suivante:
p.communicate("insert into egg values ('egg');");
TypeError: must be bytes or buffer, not str
Comment puis-je convertir la chaîne de caractères dans un tampon?
source d'informationauteur David | 2010-02-01
Vous devez vous connecter pour publier un commentaire.
La bonne réponse est:
Remarque le premier b, en vous disant que c'est une chaîne d'octets, pas une chaîne de caractères unicode. Aussi, si vous lisez ceci à partir d'un fichier:
Le changement que:
À nouveau, notez que le 'b'.
Maintenant, si votre
value
est une chaîne de caractères que vous obtenez à partir d'une API qui ne retourne que des chaînes de n'importe quoi, puis vous avez besoin pour l'encoder.Latin-1, parce que, contrairement ASCII il prend en charge tous les 256 octets. Mais cela dit, avoir des données binaires en unicode est d'avoir des ennuis. Il est préférable si vous pouvez le faire binaires depuis le début.
Vous pouvez le convertir en octets avec
encodage
méthode: