Python gspread update_cell принимает аргументы в одной функции, ошибка в другой - PullRequest
0 голосов
/ 15 декабря 2018

В настоящее время работая с python и используя grat, я столкнулся с загадочной ошибкой.

У меня есть функция для получения информации об обновлении ячейки:

def update():
    row = get_row()
    col = get_column()
    if (update_validation(row, col)):
        content = get_update_content(col)
        pp.pprint(content)
        really_update(row, col, content)
    else:
        moreinput()

и дополнительная функция для обновленияячейка для повторного использования позже:

def really_update(row, col, content):
    sheet.update_cell(row, col, content)

Эти две функции работают без проблем.Тем не менее, с помощью этой функции для добавления столбцов:

def add_column():
    row = str(0)
    col = str(len(columns)+1)
    print(row)
    print(col)
    add_format()
    name = make_col_name()
    print(name)
    print(type(row), ', ', type(col), ', ',type(name))
    #print(sheet.cell(row,col).value())
    #sheet.update_cell(row, col, name)

Как вы можете видеть, я попытался выполнить некоторую отладку, чтобы увидеть, совпадают ли типы.Они делают, но все равно выдается следующая ошибка:

File "test.py", line 184, in main
    add_column()
File "test.py", line 156, in add_column
    print(sheet.cell(row,col).value())
File "C:\Python37\lib\site-packages\gspread\models.py", line 514, in cell
    range_label = '%s!%s' % (self.title, rowcol_to_a1(row, col))
File "C:\Python37\lib\site-packages\gspread\utils.py", line 118, in 
    rowcol_to_a1
raise IncorrectCellLabel('(%s, %s)' % (row, col))
    gspread.exceptions.IncorrectCellLabel: (0, 8)

Любая отладка, которую я не помог решить, документация тоже не помогает.

Есть идеи, что может быть не так?(Надеюсь, это не что-то вроде пропавшего »:« тогда я почувствую себя плохо »Заранее большое спасибо.

1 Ответ

0 голосов
/ 16 декабря 2018

Похоже, что row в вашем случае равно 0:

raise IncorrectCellLabel('(%s, %s)' % (row, col))
    gspread.exceptions.IncorrectCellLabel: (0, 8)

gspread.utils.rowcol_to_a1(), которое вызывает исключение, принимает значения строк и столбцов, начинающиеся с 1.Документация явно об этом:

Параметры:

  • row (int, str) - Строка ячейки, которая будет преобразована.Строки начинаются с индекса 1.
  • col - Столбец ячейки, которую нужно преобразовать.Столбцы начинаются с индекса 1.
...