Как выполнить запись таблицы через 1 ячейку одним запросом?

Каким образом, из массива данных, можно записывать в ячейки каждый второй элемент с отступом через 1 ячейку? Т.е. в С10 - info1, следующая ячейка пропускается, в E10 - info2, пропуск, G10 - info3, пропуск, I10 - info4.

 import gspread

    item_list = [['data1', 'info1'],['data2', 'info2'],['data3', 'info3'],['data4', 'info4']]
    gc = gspread.service_account(filename='credentials.json')
    wks = gc.open("table").sheet1
    cell_list = wks.range('C10:I10')
    for i, cell in cell_list:
        cell.value = item_list[i][1]
    wks.update_cells(cell_list)

Ответы (1 шт):

Автор решения: Amgarak

Если я вас правильно понял, то можно сделать так:

item_list = [['data1', 'info1'],['data2', 'info2'],['data3', 'info3'],['data4', 'info4'],['data3', 'info5'],['data4', 'info6'],['data3', 'info7'],['data4', 'info8'],['data1', 'info9'],['data2', 'info10'],['data3', 'info11'],['data4', 'info12'],['data3', 'info13'],['data4', 'info14'],['data3', 'info15'],['data4', 'info16'],['data4', 'info17']]
cell=[]
for i in range(0,17):
    if i % 2:
        cell.append(item_list[i][1])
print(cell)

Вывод консоли:

['info2', 'info4', 'info6', 'info8', 'info10', 'info12', 'info14', 'info16']

[Program finished]

Идея в чем: если полученный [индекс] делится на 2 без остатка, то мы запишем данные только с четными индексами(каждый второй).

Или можем использовать: if not i % 2:

['info1', 'info3', 'info5', 'info7', 'info9', 'info11', 'info13', 'info15', 'info17']

[Program finished]

Соответственно теперь мы получим True в условии только для нечетных [индексов]

Дополнение:

import string

item_list = [['data1', 'info1'], ['data2', 'info2'], ['data3', 'info3'], ['data4', 'info4']]
cell_range = string.ascii_uppercase[2:9]  # Получаем строку "CDEFGHI"

item_index = 0
for index, cell in enumerate(cell_range):
    if index % 2: # if not index % 2:
        value = item_list[item_index][1]
        print(f'{cell}10 - {value}')
        item_index += 1

D10 - info1 F10 - info2 H10 - info3

[Program finished]

if not index % 2:

C10 - info1 E10 - info2 G10 - info3 I10 - info4

[Program finished]

Также, можно сразу сделать срез с шагом 2:

import string

item_list = [['data1', 'info1'], ['data2', 'info2'], ['data3', 'info3'], ['data4', 'info4']]
cell_range = string.ascii_uppercase[2:9:2] # Получаем строку "CEGI"

for index, cell in enumerate(cell_range):
    value = item_list[index][1]
    print(f'{cell}10 - {value}')

C10 - info1 E10 - info2 G10 - info3 I10 - info4

[Program finished]

В контексте вашей задачи:

wks = gc.open("table").sheet1
cell_list = wks.range('C10:I10')[::2]
→ Ссылка