Python Can';在google colab中找不到kaggle.json文件

Python Can';在google colab中找不到kaggle.json文件,python,google-colaboratory,kaggle,Python,Google Colaboratory,Kaggle,我正试图将kaggle imagenet对象定位挑战数据下载到google colab中,以便使用它来训练我的模型。Kaggle使用API轻松快速地访问他们的数据集。()但是,在google colab中调用命令“kaggle competitions download-c imagenet object localization challenge”时,它找不到包含我的用户名和api密钥的kaggle.json文件 在运行jupyter笔记本电脑时,我的mac电脑上没有这个问题,但由于我想在我

我正试图将kaggle imagenet对象定位挑战数据下载到google colab中,以便使用它来训练我的模型。Kaggle使用API轻松快速地访问他们的数据集。()但是,在google colab中调用命令“kaggle competitions download-c imagenet object localization challenge”时,它找不到包含我的用户名和api密钥的kaggle.json文件

在运行jupyter笔记本电脑时,我的mac电脑上没有这个问题,但由于我想在我的机型上使用google的gpu,我开始使用google colab。因为kaggle API希望用户名和API密钥位于.kaggle目录下的kaggle.json文件中,所以我首先创建了目录.kaggle,然后创建了文件kaggle.json,我在其中写入了用户名和API密钥(下面的示例不显示我的用户名和API密钥)。然后,我尝试为kaggle配置json文件的路径,以便在调用kaggle下载命令时使用

!pip安装卡格尔
!mkdir.kaggle
!touch.kaggle/kaggle.json
api_令牌={“用户名”:“用户名”,“密钥”:“api密钥”}
导入json
进口拉链
导入操作系统
以open('/content/.kaggle/kaggle.json','w')作为文件:
dump(api_令牌,文件)
!chmod 600/content/.kaggle/kaggle.json
!kaggle配置路径-p/content
但是,在运行最后一个命令时,出现了错误:

IOError: Could not find kaggle.json. Make sure it's located in /root/.kaggle. Or use the environment method.
我的目标是使用以下命令从kaggle获取数据集:

!kaggle competitions download -c imagenet-object-localization-challenge
os.chdir('/content/competitions/imagenet-object-localization-challenge')
for file in os.listdir():
    zip_ref = zipfile.ZipFile(file, 'r')
    zip_ref.extractall()
    zip_ref.close()

我不明白为什么kaggle API找不到我的json文件。如何在google colab中使用API?

正如错误所说,您需要将kaggle.json放在正确的位置

尝试:

然后再次运行代码。

根据json要查找的凭据的位置是
~/.kaggle/kaggle.json
,因为google colab环境是基于Linux的。 在代码段中,您尝试配置
path
参数,但它不用于查找凭证json:

-路径:将下载文件的文件夹,默认为当前工作目录

因此,google colab环境的完整工作片段是:

!mkdir ~/.kaggle
!touch ~/.kaggle/kaggle.json

api_token = {"username":"username","key":"api-key"}

import json

with open('/root/.kaggle/kaggle.json', 'w') as file:
    json.dump(api_token, file)

!chmod 600 ~/.kaggle/kaggle.json
然后是一些api调用,比如

!kaggle datasets download -d datamunge/sign-language-mnist

如果您是windows用户,请将kaggle.json移到.kaggle文件夹中,这样您就可以在系统根目录(位于用户名文件夹中)中找到它。

您可以找到放置表单kaggle门户本身所需的json文件。只需单击“创建新API令牌”,它将为您提供一个需要放置的JSON文件


这是迄今为止最好的答案,应该是公认的答案!答案很清楚。非常感谢。
!kaggle datasets download -d datamunge/sign-language-mnist