Python / gspread: ¿cómo puedo actualizar varias celdas con DIFERENTES VALORES a la vez?

Para actualizar un rango de celdas, use el siguiente comando.

## Select a range cell_list = worksheet.range('A1:A7') for cell in cell_list: cell.value = 'O_o' ## Update in batch worksheet.update_cells(cell_list) 

Para mi aplicación, me gustaría actualizar un rango completo, pero estoy tratando de establecer un valor diferente para cada celda individual. El problema con este ejemplo es que cada celda termina con el mismo valor. Actualizar cada celda individualmente es ineficiente y toma demasiado tiempo. ¿Cómo puedo hacer esto de manera eficiente?

Puede usar la enumeración en una lista separada que contiene los diferentes valores que desea en las celdas y usar la parte del índice de la tupla para que coincida con las celdas apropiadas en cell_list.

 cell_list = worksheet.range('A1:A7') cell_values = [1,2,3,4,5,6,7] for i, val in enumerate(cell_values): #gives us a tuple of an index and value cell_list[i].value = val #use the index on cell_list and the val from cell_values worksheet.update_cells(cell_list) 

Suponiendo una tabla con una fila de encabezado, como sigue:

 Name | Weight ------+------- Apple | 56 Pear | 23 Leaf | 88 

Entonces, lo siguiente debe ser auto explicativo

 cell_list = [] # get the headers from row #1 headers = worksheet.row_values(1) # find the column "Weight", we will remember this column # colToUpdate = headers.index('Weight') # task 1 of 2 cellLookup = worksheet.find('Leaf') # get the cell to be updated cellToUpdate = worksheet.cell(cellLookup.row, colToUpdate) # update the cell's value cellToUpdate.value = 77 # put it in the queue cell_list.append(cellToUpdate) # task 2 of 2 cellLookup = worksheet.find('Pear') # get the cell to be updated cellToUpdate = worksheet.cell(cellLookup.row, colToUpdate) # update the cell's value cellToUpdate.value = 28 # put it in the queue cell_list.append(cellToUpdate) # now, do it worksheet.update_cells(cell_list)