API Google Таблиц v4 с Python. Автоматическое изменение размера столбца не работает

Я определил класс Python для работы с Google Sheets API v4. И я создал этот метод для автоматического изменения размера столбца в соответствии с его содержимым, следуя инструкциям в здесь:

    def autofit_col(self, sheet_id, start_col=0, end_col=1000):
        """
        Resize column to fit to data.
        
        :param sheet_id: sheet id
        :param start_col: starting column, first column is 0
        :param end_col: final column plus 1
        """
        file_id = self.file_id 
        
        request = [{"autoResizeDimensions": {
                        "dimensions": {
                            "sheetId": sheet_id,
                            "dimension": "COLUMNS",
                            "startIndex": start_col,
                            "endIndex": end_col
                        }
                  }}]
        
        self.batch_update(file_id, request)

Но он не работает, и я не могу найти ошибку... То же самое происходит и в случае с ROWS.

Он не вылетает, не показывает никаких предупреждений или ошибок, он просто ничего не делает.

Класс хорошо определен, потому что другие методы работают правильно.

Я надеюсь, что кто-то может найти проблему и помочь мне исправить ее.

Большое спасибо!

Не могли бы вы поделиться электронной таблицей и кодом для execute_requests(), чтобы я мог проверить структуру вашего запроса?

Nikko J. 23.12.2020 22:53

Например, из The class is well defined because other methods are working properly., как насчет повторного подтверждения идентификатора электронной таблицы и идентификатора листа? Потому что, когда ваше тело запроса используется как {request: request} для метода batchUpdate, тело запроса работает. Я беспокоился, что идентификатор электронной таблицы и идентификатор листа могут отличаться от ваших целей.

Tanaike 24.12.2020 02:54

self.execute_requests(file_id, request) просто совпадает с self.batch_update(file_id, request) (извините, я просто изменил имя)

Lucy_in_the_sky_with_diamonds 26.12.2020 05:56

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

Lucy_in_the_sky_with_diamonds 26.12.2020 05:59
Почему в 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 может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
4
433
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это на самом деле работает, я просто выполнял его в неправильном порядке...

Я также ожидал, что он изменит размер пустых столбцов до 100, но этого не происходит (и это меня смутило). Он ничего не делает для пустых столбцов (для этих случаев мне пришлось создать другой метод).

И это не работает точно так же, как «ручной» метод. Например, если я вручную «подгоняю под данные» определенный столбец, его размер изменяется до 55, но если я делаю это с помощью этого метода, он изменяется до 60.

Спасибо за ваши комментарии, они помогли мне осознать свою ошибку.

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