Как правильно создать электронную таблицу Google с Sheet API4?

Я создал электронную таблицу с помощью Sheet APIv4. Когда я перечисляю каталог с помощью Drive APIv3, он показывает только []. Мои коды взяты с официальных (Google) сайтов. Я использую Python3.6 и Google Colaboratory.

from google.colab import auth
auth.authenticate_user()
from googleapiclient.discovery import build
sheet_service = build('sheets', 'v4')
drive_service = build('drive', 'v3')

Творчество:

spreadsheet_metadata = {'properties': {'title': 'Second spreadsheet2'},
                    'sheets': [
                    {
                        'properties': {
                            'title': 'First Sheet',
                            'gridProperties' : {
                                'columnCount': 6,
                                'rowCount': 11,
                                'frozenRowCount': 1
                            }
                        }
                    }, 
                    {
                       'properties': {
                           'title': 'Second Sheet',
                           'gridProperties': {
                               'columnCount': 4,
                               'rowCount': 8,
                               'frozenColumnCount': 2
                           }
                       }
                    }
                   ]
                   }
spreadsheet = sheet_service.spreadsheets().create(body=spreadsheet_metadata).execute()
spreadsheet_id = spreadsheet['spreadsheetId']
print('Created "%s"' % spreadsheet['properties']['title'])
print('Spreadsheet ID: {0}'.format(spreadsheet.get('spreadsheetId')))

Это приводит к

Created "Second spreadsheet2"
Spreadsheet ID: 1fqreW1y3fcdaJmQWS1j25OMKaFjf90XfO38WB4ZIqIM

Листинг:

page_token = None
while True:
    response = drive_service.files().list(q = "mimeType='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'",
                                          spaces='drive',
                                          fields='nextPageToken, files(id, name)',
                                          pageToken=page_token).execute()
    for file in response.get('files', []):
        # Process change
        print('Found file: %s (%s)' % (file.get('name'), file.get('id')))
    page_token = response.get('nextPageToken', None)
    if page_token is None:
        break

Это приводит к:

[]

Так как листинг работает хорошо (много раз проверял), думаю проблема в не правильном spreadsheet_metadata. Чего-то не хватает, но я понятия не имею чего. Надеюсь, у кого-то больше практики. Спасибо.

Обновлять Благодаря комментарию @Tanaike я обнаружил свое непонимание. Google строго различает файлы Excel xlsx и файлы Google «xlsx». Поэтому, если кто-то хочет справиться с ними вместе, одним из решений будет использование

" mimeType='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' or  
 mimeType='application/vnd.google-apps.spreadsheet'" 

в запросе, но я не знаю, вызовет ли это другие проблемы позже. Поскольку у меня всего несколько файлов, возможно, я конвертирую Excel xlsx в формат Google «xlsx», учитывая только один тип файлов, который проще (для меня).

application/vnd.openxmlformats-officedocument.spreadsheetml.‌​sheet — это mimeType файла xlsx. Если вы хотите получить электронную таблицу, как насчет использования application/vnd.google-apps.spreadsheet для поискового запроса? Я не уверен, что это то, что вы хотите. Поэтому я спросил это в качестве комментария.
Tanaike 03.02.2019 01:32

@Tanaike Спасибо. да. "Почти" да. Пожалуйста, дайте это как ответ, я хотел бы принять его. После того, как вы это сделаете, я обновлю свой вопрос, потому что теперь я понимаю причины. Я думаю, что это похоже на ошибку поведения Google Drive API v3. Как вы думаете, это должен быть отчет? Я знаю обходной путь для этой проблемы, я напишу его в обновленном вопросе. Пожалуйста, прочтите его, если у вас есть идеи, задавайте вопросы, комментируйте. Я хочу, чтобы другие пользователи нашли полезную и правильную информацию.

vesszabo 03.02.2019 10:16

Спасибо за ответ. Можете ли вы обновить свой вопрос? Я хотел бы подтвердить «ошибочное поведение Google Drive API v3» и подумать об этом. И я хотел бы опубликовать ответ и комментарий, резюмируя их.

Tanaike 03.02.2019 23:27

@Tanaike Обновлено. Может быть, вместо «похожий на ошибку» лучше было бы сказать «не очень удобный для пользователя». Но помня об этом, все работает хорошо.

vesszabo 06.02.2019 21:37

Спасибо за обновление. Я думаю, что ваш дополнительный запрос подходит как метод для получения как файлов Excel, так и файлов Google Spreadsheet. Например, если количество файлов стало большим, как насчет разделения вызовов API для каждого mimeType? Кстати, опубликуйте это как ответ и примите его. Я рад, что ваша проблема была решена.

Tanaike 06.02.2019 23:24
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
5
68
0

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