当前在实践中使用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)
任何调试我都没有帮助解决这个问题, 该文档也无济于事。
有什么主意吗? (希望这不是缺少“:”的东西,然后我会很难过) 提前谢谢。
答案 0 :(得分:1)
在您的情况下,看来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开始。