AttributeError: 'unicode' objet n'a pas d'attribut "supprimer"

Je suis en train d'essayer de transformer une chaîne de caractères en une liste de mots séparés--rien de mais des lettres. Cependant, autant que je peux dire, unicode est à l'origine des problèmes.

essay_text = ['This,', 'this,', 'this', 'and', 'that.']

def create_keywords(self):
    low_text = self.essay_text.lower()
    word_list = low_text.split()
    abcs = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'x', 'y', 'z']
    for n in word_list:
        for m in n:
            for l in abcs:
                if m!=l:
                    n.remove(m)
        self.keywords.setdefault(n, 0)
        self.keywords[n] = word_list.count(n)
        for m in bad_words:
            if n==m:
                del self.keywords[n]
    print self.keywords

J'obtiens cette erreur:

AttributeError: 'unicode' object has no attribute 'remove'

Comment puis-je résoudre ce problème?

Mise à jour:
Je ne comprends pas pourquoi mes chaînes sont en unicode. Si elle est pertinente, ici, c'est la classe que ce modèle se trouve sous:

class Essay(models.Model):
    title = models.CharField(max_length=100)
    author = models.CharField(max_length=100)
    email = models.EmailField(max_length=100)
    essay_text = models.TextField()
    sources = models.TextField()

    def __unicode__(self):
         return self.title

Pourquoi mes chaînes de caractères en unicode?

  • Juste un conseil, - Votre code actuel garde à redéfinir abcs. Il serait préférable de les déplacer hors de la boucle de sorte qu'il est défini une seule fois. Ou, mieux encore, utiliser la ascii_lowercase de la string module.
  • Avez-vous un from __future__ import unicode_literals dans votre code? que serait la cause de Python 2 pour traiter 'string' en Unicode.
InformationsquelleAutor tog | 2013-11-14