Python gspread update_cell在一个函数中接受参数,在另一个函数中接受错误

时间:2018-12-14 21:18:25

标签: python google-sheets-api gspread

当前在实践中使用python和gspread时遇到了一个隐秘错误。

我具有获取单元更新信息的功能:

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 :(得分:1)

在您的情况下,看来row0

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

gspread.utils.rowcol_to_a1()引发异常,接受以1开始的行和列值。明确的文档说明:

  

参数:

     
      
  • row(int,str)–要转换的单元格的行。行从索引1开始。
  •   
  • col –要转换的单元格的列。列从索引1开始。
  •