kaggle API로 데이터 받는 법, OSError: Could not find kaggle.json. 해결
개요
캐글에 있는 데이터는 그 용량이 만만치 않기 때문에 웹브라우저의 다운로드 기능에만 맡기기엔 조금 불안한 감이 있다. 그래서 고용량 데이터를 안정적으로 받을 수 있는 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에서 다운로드 받아서 특정 경로에 위치시키면 된다.
해결
Step 1.
https://www.kaggle.com/유저이름/account 혹은 유저프로필에서 Account 탭을 찾는다.
Step 2. kaggle.json 파일 다운로드
해당 페이지에서 API로 검색하면 위와 같이 API 토큰을 생성하는 버튼을 찾을 수 있다. 클릭하면 kaggle.json
파일을 다운로드 받을 수 있다. 이 가이드에서는 헷갈리지 않도록 기본 다운로드 폴더에 받았다.
Step 3. 특정 경로에 복사
반드시 관리자 권한으로 powershell 혹은 터미널을 실행한다.
위와 같이 kaggle.json
이 있는 다운로드 폴더로 이동하고, kaggle.json
파일을 복사하는 커맨드는 다음 두 줄이다.
cd C:\Users\rmsms\Downloads
cp kaggle.json ~/.kaggle/kaggle.json
이때 복사에 권한이 필요할 수 있기 때문에 터미널도 관리자 권한으로 연 것이다.
Step 4. 다운로드 시도
kaggle competitions download -c rsna-miccai-brain-tumor-radiogenomic-classification
다시 위의 커맨드를 입력하면 다음과 같이 잘 다운로드가 되는 것을 확인할 수 있다.
사이트에서는 127.45GB이었는데 12.3GB만 다운로드 된 것으로 보이는데, 압축률이 너무 높아 그런 것이니 당황할 필요 없다. 압축을 풀면 원래의 방대한 데이터가 나타난다.