2017-02-02 18 views
0

ValueErrorを解決するにはリストに問題はありませんか?自分のコードに何が間違っているのか分かりません。ValueErrorがリストに含まれていません。それはリストにあります

from urllib.request import urlopen 
    from bs4 import BeautifulSoup 
    html = urlopen("http://uk.reuters.com/business/quotes/financialHighlights? symbol=AAPL.O") 

    bsObj = BeautifulSoup(html,"html.parser") 
    tag = bsObj.findAll("td") 
    tagList = [] 
    for tagItem in tag: 
     tagList.append(tagItem) 

    print(tagList.index("<td>Dec</td>")) 

エラー:

Traceback (most recent call last): 
File "/Users/home/Desktop/development/x/code.py", line 11, in <module> 
print(tagList.index("<td>Dec</td>")) 
ValueError: '<td>Dec</td>' is not in list 

Process finished with exit code 1 
+0

'タグの中にタグ: 'は混乱しています。 –

+0

OK、tagをtagItemで置き換えるコードを更新します。ありがとう! –

答えて

2

あなたは<class 'bs4.element.Tag'>オブジェクトのリストを作成しています。それらの文字列の表現は、あなたが探している文字列と一致するようですが、オブジェクトは異なる型を持つので等しくはありません。

(同じリストを印刷、引用符がないことに注意して、リストを印刷する[<td>Dec</td>, <td>Dec</td>]を生み出すことに注意しますが、文字列で['<td>Dec</td>', '<td>Dec</td>']を生み出す)

クイックフィックス:文字列

for tagItem in tag: 
    tagList.append(str(tagItem)) 

やリストなどとして、あなたのリストを作成します読解:今

tagList = [str(tagItem) for tagItem in tag] 

index作品:リターン

01 "0"

あなたは、文字列に比べて最初のインデックスを検索するには、次の(あなたがオブジェクトを保持したい場合は、文字列に強制ではない)未変換のあなたのリストを維持し、使用することができます注:

print(next(i for i,x in enumerate(tagList) if str(x)=="<td>Dec</td>")) 
+0

Mr. Fabreありがとう:) –

関連する問題