Передача переменной в запрос в google-drive-api files (). List list - PullRequest
0 голосов
/ 24 мая 2019

Я пытаюсь создать функцию, которая принимает имя каталога в качестве параметра и возвращает идентификатор каталога. Конечная цель состоит в том, чтобы перечислить файлы в указанном каталоге, используя возвращенный идентификатор файла, однако я не могу понять синтаксис для передачи имени каталога в качестве переменной.

Мне удается только сделать что-то из следующего, где мне нужно явно ввести имя каталога. Обратите внимание, что я использую v3 google drive api.

def get_folder_id():

    folder_ID = ""

    while True:
        response = drive_service.files().list(
            q="name='folder1'", fields="nextPageToken, files(id,name)").execute()

        files = response.get('files', [])

        for item in files:
            print ("Found file: %s, %s" % (item['name'], item['id']))
            folder_ID = item['id']

        page_token = response.get('nextPageToken', None)

        if page_token == None:
            break

    return folder_ID

Как передать имя папки в качестве параметра и при этом включить его в запрос q?

Я пробовал варианты, такие как:

response = drive_service.files().list(
            q='"name="' + "'" + f_name + "'" + '"', fields="nextPageToken, files(id,name)").execute()

В попытке включить одинарные кавычки вокруг запроса, но это тоже не работает

1 Ответ

0 голосов
/ 25 мая 2019
  • Вы хотите получить идентификатор папки из имени папки, используя Drive API v3 с Python.

Если мое понимание верно, как насчет использования следующего поискового запроса?Пожалуйста, измените следующим образом.

С:

q='"name="' + "'" + f_name + "'" + '"'

Кому:

q="name='" + f_name + "' and mimeType='application/vnd.google-apps.folder' and trashed=false"
  • В этой модификации поисковый запрос был изменен.
    • mimeType='application/vnd.google-apps.folder' означает папку.
    • trashed=false означает файлы за пределами корзины.

По указанному выше поисковому запросу:извлекаются папки с именем папки f_name.

Ссылка:

ЕслиЯ неправильно понял ваш вопрос, и это был не тот результат, которого вы хотите, я прошу прощения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...