Kaggle APIを使ってデータをダウンロードする方法、OSError: kaggle.jsonが見つかりませんでした。の解決方法
概要
Kaggleにあるデータは、容量が大きく、ウェブブラウザのダウンロード機能に任せるには少し不安がある。そのため、大容量データを安定してダウンロードできるAPIが提供され、上のスクリーンショットで一番上にあるコードがそれに該当する。
ターミナルでpip install kaggle
と入力してkaggleをインストールし、
kaggle competitions download -c rsna-miccai-brain-tumor-radiogenomic-classification
を入力すると、作業ディレクトリに例示データがダウンロードされる。
エラー
実際、うまくいかないだろう。
PS D:\> kaggle competitions download -c rsna-miccai-brain-tumor-radiogenomic-classification
Traceback (most recent call last):
File "c:\users\rmsms\appdata\local\programs\python\python39\lib\runpy.py", line 197, in _run_module_as_main
return _run_code(code, main_globals, None,
File "c:\users\rmsms\appdata\local\programs\python\python39\lib\runpy.py", line 87, in _run_code
exec(code, run_globals)
File "C:\Users\rmsms\AppData\Local\Programs\Python\Python39\Scripts\kaggle.exe\__main__.py", line 4, in <module>
File "c:\users\rmsms\appdata\local\programs\python\python39\lib\site-packages\kaggle\__init__.py", line 23, in <module>
api.authenticate()
File "c:\users\rmsms\appdata\local\programs\python\python39\lib\site-packages\kaggle\api\kaggle_api_extended.py", line 164, in authenticate
raise IOError('Could not find {}. Make sure it\'s located in'
OSError: Could not find kaggle.json. Make sure it's located in C:\Users\rmsms\.kaggle. Or use the environment method.
原因
簡単に言うと、Kaggleに登録がされていないとダウンロードできないのだが、そのユーザー情報がないためにうまくいかない。ユーザー情報が含まれるkaggle.json
ファイルは、pip
でのインストールができないため、直接Kaggleからダウンロードして特定のパスに配置する必要がある。
解決法
ステップ 1.
https://www.kaggle.com/ユーザー名/account またはユーザープロファイルからAccountタブを探す。
ステップ 2. kaggle.jsonファイルのダウンロード
該当ページでAPIを検索すると、上のようにAPIトークンを生成するボタンが見つかる。クリックすると、kaggle.json
ファイルをダウンロードできる。このガイドでは、混乱しないようにデフォルトダウンロードフォルダに受け取った。
ステップ 3. 特定のパスにコピー
必ず管理者権限でpowershellまたはターミナルを実行する。
上のようにkaggle.json
があるダウンロードフォルダに移動し、kaggle.json
ファイルをコピーするコマンドは次の2行である。
cd C:\Users\rmsms\Downloads
cp kaggle.json ~/.kaggle/kaggle.json
コピーに権限が必要になる可能性があるため、ターミナルも管理者権限で開いた。
ステップ 4. ダウンロードを試みる
kaggle competitions download -c rsna-miccai-brain-tumor-radiogenomic-classification
上のコマンドを再入力すると、次のようにうまくダウンロードされていることが確認できる。
サイトで127.45GBだとされていたものが12.3GBしかダウンロードされていないように見えるが、圧縮率が非常に高いため驚く必要はない。解凍すると、元の広大なデータが現れる。