Передача переменной в запрос в функции google-drive-api files().list

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

Я могу только сделать что-то из следующего, где мне нужно явно ввести имя каталога. Обратите внимание, что я использую v3 API-интерфейса Google Drive.

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()

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

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
0
774
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий
  • Вы хотите получить идентификатор папки из имени папки, используя 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.

Ссылка:

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

Это был не совсем вопрос, однако вы ответили на вопрос внутри, спасибо. Проблема, с которой я столкнулся, заключалась в том, что я не мог получить правильную комбинацию кавычек, чтобы передать имя в качестве переменной. Спасибо!

pqrs 25.05.2019 11:49

@pqrs Добро пожаловать. Спасибо, что дали мне знать. Я рад, что ваша проблема была решена. Если ваш вопрос был решен, пожалуйста, нажмите кнопку «Принять». Другие люди, у которых есть та же проблема, что и вы, также могут основывать ваш вопрос на вопросе, который можно решить. Если вы не найдете кнопку, не стесняйтесь сказать мне. stackoverflow.com/help/accepted-answer

Tanaike 26.05.2019 01:14

@pqrs Прошу прощения за неудобства. Вы можете увидеть, как принять ваш ответ, на странице https://meta.stackexchange.com/a/65088.

Tanaike 03.06.2019 14:20

Не уверен, что вы уже получили ответ на свой вопрос. Однако, если вы хотите передать имя переменной как часть запроса в запросе GoogleDrive, добавьте к имени переменной знак + до и после него. year_id = "Бла-бла" Пример: - q="родители в '"+year_id+"'

Удачного кодирования!!!

оберните код в ``` ```, чтобы его было легче читать. И я думаю, что вы написали ошибку, а также с кавычками

Prageeth Jayathissa 10.07.2020 07:08

Другие вопросы по теме