web-dev-qa-db-ja.com

AttributeError:文字を削除しようとしたときに、「リスト」オブジェクトに属性「置換」がありません

私は次のようにして文字列から文字を削除しようとしています

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

これにより、エラーAttributeError: 'list'オブジェクトに属性 'replace'がありません

PHPのバックグラウンドから来て、これを行う正しい方法は何ですか?

9
emma perkins

xpath メソッドはリストを返します。アイテムを繰り返す必要があります。

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()')

このコードは、文字列ではなくリストを返します。置換関数はリストでは機能しません。

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

これは私のために働いた:

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("'", "")

このエラーは、xpathがリストで返されるために発生します。リストにはreplace属性がありません。そのため、strをその前に置くことにより、コードが処理できる文字列に変換します。これがお役に立てば幸いです!

0
Char Gamer