web-dev-qa-db-fra.com

AttributeError: l'objet 'list' n'a pas d'attribut 'replace' lors de la tentative de suppression de caractère

J'essaie de supprimer le caractère "de ma chaîne en procédant comme suit

kickoff = tree.xpath('//*[@id="page"]/div[1]/div/main/div/article/div/div[1]/section[2]/p[1]/b[1]/text()')
kickoff = kickoff.replace("'", "")

Cela me donne l'erreur AttributeError: l'objet 'list' n'a pas d'attribut 'replace'

Venant d'un arrière-plan php, je ne sais pas quelle est la bonne façon de procéder?

9
emma perkins

xpath la méthode retourne une liste, vous devez itérer les éléments.

kickoff = [item.replace("'", "") for item in kickoff]
12
falsetru
kickoff = tree.xpath('//*[@id="page"]/div[1]/div/main/div/article/div/div[1]/section[2]/p[1]/b[1]/text()')

Ce code renvoie la liste et non une chaîne. La fonction de remplacement ne fonctionnera pas sur la liste.

[i.replace("'", "") for i in kickoff ]
2
Himanshu dua

Cela a fonctionné pour moi:

kickoff = str(tree.xpath('//*[@id="page"]/div[1]/div/main/div/article/div/div[1]/section[2]/p[1]/b[1]/text()'))
kickoff = kickoff.replace("'", "")

Cette erreur est due au fait que le xpath retourne dans une liste. Les listes n'ont pas l'attribut replace. Donc, en plaçant str avant, vous le convertissez en une chaîne que le code peut gérer. J'espère que cela a aidé!

0
Char Gamer