2016-07-14 1 views
2

J'espère que la question simple ici, j'ai une valeur qui, si son unicode, doit être codé. J'utiliser le haut dans le code classe string.encodePython 2.6: encoder() ne prend aucun argument mot-clé

est simple:

if value_t is unicode: 
       values += (value.encode('utf-8', errors='backslashreplace'), None) 
       continue 

Cependant, il retourne "encode() ne prend aucun argument mot-clé"

Je TOURNE, en python 2.6, je ne pourrais pas Ne trouver aucune documentation indiquant que cela n'existe pas dans la version 2.6 Y a-t-il un moyen pour moi de m'assurer qu'il n'est pas écrasé par une fonction d'encodage dans une bibliothèque différente? ou une sorte de solution à cela.

Il semble que vous puissiez utiliser string.encode dans 2.6 (https://docs.python.org/2.6/howto/unicode.html) donc je ne suis pas vraiment sûr pourquoi cela ne fonctionnerait pas. Je travaille sur un fichier dans un assez grand système, donc je crains que cela soit en quelque sorte écrasé. Soit cela ou un module dont j'ai besoin n'est pas installé .. Mais je suis perdu

Répondre

4

Les documents Python pour encode expliquent pourquoi vous voyez ce problème. Plus précisément: Changed in version 2.7: Support for keyword arguments added

1

Depuis les signatures de méthode ont tendance à changer de version en version, vous devriez toujours lire la documentation pertinente à la version que vous travaillez avec

De str.encode documentation Python 2.6, la signature de la méthode est:

str.encode([encoding[, errors]]) 

Il n'y a pas d'argument mot-clé errors, mais le deuxième paramètre peut être utilisé dans le même but.