Python スクレイピングでAttributeError: 'list' object has no attribute 'keys'が発生する
Pythonでスクレイピングツールを作成しています。
URLがIDで管理されているサイトで
作ったコード
import time
from tqdm import tqdm, tqdm_notebook
def scrape_race_results(race_id_list,pre_race_results=[]):
race_results=pre_race_results
for race_id in tqdm(race_id_list):
if race_id in race_results.keys():
continue
try:
url = 'https://db.netkeiba.com/race/'+ race_id
race_results.append(pd.read_html(url,header=0)[0])
time.sleep(1)
except:
break
return race_results
for place in range(1,11,1):
for kai in range(1,6,1):
for day in range(1,9,1):
for r in range(1,13,1):
race_id = '2020'+str(place).zfill(2) + str(kai).zfill(2) + str(day).zfill(2) + str(r).zfill(2)
race_id_list.append(race_id)
test2 = scrape_race_results(race_id_list,test)
こちらを実行したところ
該当のエラー
AttributeError Traceback (most recent call last)
<ipython-input-124-8c899e53e993> in <module>
----> 1 test2 = scrape_race_results(race_id_list,test)
<ipython-input-121-9b788cfd6530> in scrape_race_results(race_id_list, pre_race_results)
5 race_results=pre_race_results
6 for race_id in tqdm(race_id_list):
----> 7 if race_id in race_results.keys:
8 continue
9 try:
AttributeError: 'list' object has no attribute 'keys'
自分で試したこと
if race_id in race_results.keys():
読み解くと、keysが辞書型なので、エラーが起きているのだと思います。
このif文にリスト型でキーになる文章を入れたいのですが、どうすれば良いのでしょうか?
0