2015-06-01 33 views
0

我想使用python將數據寫入Google表單。現在,我已經做了以下實現這一目標:錯誤:列表索引必須是整數,而不是單元格

gc = gspread.authorize(credentials) 

sh = gc.open('test') 

worksheet = sh.worksheet('Sheet1') 

cell_list = [] 
cell_data = [] 

for e in range(len(scholar_key)): 
    cell_list.append('B' + str(e)) 

for d in scholar_key: 
    cell_data.append(d['titel']) 

cell_range = worksheet.range(cell_list[1]+ ":" +cell_list[-1]) 

for i in cell_range: 
    i.value = cell_data[i] 

worksheet.update_cells(cell_range) 

但我不斷收到以下錯誤:第28行TypeError: list indices must be integers, not Cell(這是i.value = cell_data [i]的規定的線)。我究竟做錯了什麼?另一個問題是如何遞增計數器,因爲現在索引從0開始計數到19.但是,我希望計數器從1開始計數到20(對於列,這樣我的data_list中只有值陣列從B1到B20)。

+3

請張貼滿'traceback',它有助於大規模進行調試。 – Scironic

+1

第28行?在給定的代碼中究竟是什麼行? –

+0

請同時嘗試使您的代碼可用(例如,包含'import gspread')。 – DilithiumMatrix

回答

2

在這個循環中,i將是Cell不是數字索引

for i in cell_range: 
    i.value = cell_data[i] 
實例

您可以改用這樣的事情

for index, cell in enumerate(cell_range): 
    cell.value = cell_data[index] 
+0

你是英雄人,這工作! Tnx爲您的清晰解釋 – user2237168

+0

枚舉函數還爲計數器問題提供了一個很好的解決方案! Tnx: 索引,e枚舉(scholar_key,start = 1): \t cell_list.append('B'+ str(index)) – user2237168

相關問題