辞書を返して3回使用し、返された辞書を1に結合する関数を作成しようとしています。辞書。しかし、print(all_dict)は辞書を1つだけ返します。印刷しようとすると(get_dict(f1))、私は以下のTracebackを取得します。同じ関数を3回呼び出すのではなく、各関数を同じコマンドで別々に定義して、私が望むものを得ることができます。しかし、私はコードを書くためのより簡潔な方法を見つけることを望む。Python関数は3回使用されていますが、一度だけ返されます
あなたがここにテーブルのHTML見つけることができます:ここではhttps://github.com/Tokaalmighty/topmover_table_html/blob/master/html
Traceback (most recent call last):
File "week4_1.py", line 55, in <module>
print(get_dict(f1))
File "week4_1.py", line 23, in get_dict
bold=topmovers.find_all('b')
AttributeError: 'NoneType' object has no attribute 'find_all'
は私の関数のコードであり、私は1へ3つの辞書に参加しようとしたか:あなたは
def get_dict(f1):
soup=bs(f1,'html.parser')
topmovers=soup.find('table'{'class':'topmovers'})
bold=topmovers.find_all('b')
…
…
return final
all_dict={}
result = {**get_dict(f1), **get_dict(f2), **get_dict(f3)}
all_dict['result']=result
print(all_dict)
print(get_dict(f1))
あなたのエラーは 'topmovers = soup.find( 'table'、{'class': 'topmovers'})'の結果で '' None''を返します。これまでのところ、問題はあなたのコードではなく、エラー処理の欠如です。 'None'に対してメソッドを呼び出すことはできません。 –
しかし、3つの関数を完全に打ち込むと、Noneを返しません。 – Tokaalmighty