我有一个电子表格,我想用列表中字典的值填充其值。我编写了一个逐个单元格更新的 for 循环,但它太慢了,而且我经常得到 gspread.httpsession.HTTPError。我正在尝试编写一个循环来逐行更新。这就是我所拥有的:
lstdic=[
{'Amount': 583.33, 'Notes': '', 'Name': 'Jone', 'isTrue': False,},
{'Amount': 58.4, 'Notes': '', 'Name': 'Kit', 'isTrue': False,},
{'Amount': 1083.27, 'Notes': 'Nothing', 'Name': 'Jordan', 'isTrue': True,}
]
这是我的逐个单元循环:
headers = wks.row_values(1)
for k in range(len(lstdic)):
for key in headers:
cell = wks.find(key)
cell_value = lstdic[k][key]
wks.update_cell(cell.row + 1 + k, cell.col, cell_value)
它所做的是找到与字典列表中的键对应的标题并更新其下的单元格。下一次迭代该行增加一,因此它更新同一列中的单元格,但下一行。这太慢了,我想逐行更新。我的尝试:
headers = wks.row_values(1)
row=2
for k in range(len(lsdic)):
cell_list=wks.range('B%s:AA%s' % (row,row))
for key in headers:
for cell in cell_list:
cell.value = lsdic[k][key]
row+=1
wks.update_cells(cell_list)
这一个快速更新每一行,但具有相同的值。因此,第三个嵌套 for 循环为每个单元格分配相同的值。我正在努力弄清楚如何为单元格分配正确的值。帮助表示赞赏。
PS顺便说一句,我使用标题是因为我想要谷歌电子表格中的值应该出现的特定顺序。