gpt4 book ai didi

python - Google Drive API 的限制

转载 作者:行者123 更新时间:2023-11-30 23:05:07 26 4
gpt4 key购买 nike

我认识的人想要一个程序来列出某个文件夹中文件的所有 google 驱动器 ID。所以我查看了谷歌网站,学习了一些如何用Python来做这件事,并想出了一个程序。问题是似乎有一个限制,但我不太明白:

如果我使用此代码:

credentials = get_credentials()
http = credentials.authorize(httplib2.Http())
service = discovery.build('drive', 'v2', http=http)

par = {'maxResults':1000}
results = service.files().list(**par).execute()
items = results.get('items', [])
folders = {}
if not items:
print('No files found.')
else:
print("There is "+str(len(items))+" items")

我在 Google 开发者网站的示例中获取了 get_credentials() ,事实是我确信我正在访问的驱动器有超过 1000 个文件,但程序仍然如此告诉我 There is 460 items ,有什么办法可以将其限制为 460 个逻辑吗?

最佳答案

我不使用Python,但我认为你缺少“nextPage”逻辑。看,(至少在 Java 中)列表一次返回一页结果,因此必须有另一个循环来检索下一页(只要有一个可用),例如:

  void list(String prnId) {
String qryClause = "'me' in owners and '" + prnId + "' in parents";
Drive.Files.List qry = mGOOSvc.files().list()
.setQ("'me' in owners and '" + prnId + "' in parents")
.setFields("items, nextPageToken");
String npTok = null;
do {
FileList gLst = qry.execute();
if (gLst != null) {
// BINGO - file list, but only one page worth
npTok = gLst.getNextPageToken(); //GET POINTER TO THE NEXT PAGE
qry.setPageToken(npTok);
}
} while (npTok != null && npTok.length() > 0);
}

看到“do while()”循环和“BINGO”注释了吗?尝试将其实现到您的 PY 代码中(并且不要忘记请求“nextPageToken”来获取它)。

此外,this page 底部有一个很棒的工具,TryIt! ,您可以在其中测试各种东西。

祝你好运

关于python - Google Drive API 的限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33343671/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com