2017-10-14 74 views
0

我使用這個python腳本採取從浦API響應: http://docs.progresso.apiary.io/#reference/behaviour/behaviour-events-collection/get-behaviour-events蟒蛇gspread從人體效應初探更新多個細胞

from urllib2 import Request, urlopen 
import smtplib import gspread 
from oauth2client.service_account import ServiceAccountCredentialseaders = { 
'Authorization': 'Bearer [CURRENT_TOKEN]' 
} 
request = Request('https://private-anon-ae5edf57e7-progresso.apiary- 
mock.com/BMEvents/?Behaviour=new', headers=headers) 
response_body = urlopen(request).read() 
scope = ['https://spreadsheets.google.com/feeds'] 
credentials = ServiceAccountCredentials.from_json_keyfile_name('ProgressoAPI- 
2f6ecaa6635c.json', scope) 
gc = gspread.authorize(credentials) 
wks = gc.open("Progresso Test").sheet1 
wks.clear() 
cell_list = wks.range('A1:H20') 
for cell in cell_list: 
cell.value = response_body 
wks.update_cells(cell_list) 

我知道cell.value =響應主體是錯誤的,我不知道我如何才能做到 - 我被卡住了。

它出現在這樣的每一個細胞: 「{ 」「 BehaviourEntryId」 「:13798177, 」「 LearnerId」 「:245277, 」「 LearnerCode」 「: 」「 2009-0080」 「 」 「RegGroup」「:」「U6-RWE」「, 」「Behavior」「:」「Negative」「, 」「IncidentDate」「:」「2017-02-07」「, 」「Subject」「: 「」「」「」「」位置「」:「」CLS「」, 「 「:null, 」「Assignee」「:」「DiRo」「, 」「Status」「:」「Completed」「, 」「詳細信息「」:「類別」「:」「CLatt」「,」 「」嚴重性「」:「」S2「」, 「」點「 「:0 }, { 」「 類別」, 「: 」「 CL」」, 「」 類型 「」: 「」 CLBEH 「」, 「」 嚴重性 「」: 「」 S2 「」, 「」點 「」:2 } ], 「」 意見 「」:[ { 「」 BehaviourEntryCommentId 「」:5648278, 「」 機密 「」:真實, 「」 評論 「」: 「」 問去去了廁所,去了最遠的一個地方,爲了浪費時間。輸入法 「」 }, { 「」 BehaviourEntryCommentId 「」:5648279, 「」 機密 「」:假的, 「」 評論 「」: 「地板上」 稚貝膠去 「」 }, { 「 「BehaviourEntryCommentId」 「:5648280, 」「 機密」 「:假的, 」「 評論」 「: 」「 很粗魯員工的memeber」」 } ], 「」 操作 「」: 「」 HTO 「」, 「」ISO「」 「 }」

如何將文本與單元格範圍內的文本分開並批量更新?

回答

0

如果你的意思是這樣兩列一行是「BehaviourEntryId」,另一行是13798177,你可以嘗試這樣的事:

import json 
response = json.loads(response_body) #decode the json response string, returns a dict 
response_pairs = list(response.items) 

for i in range(1, len(response_body)+1): 
    current_pair = response_pairs[i-1] 
    current_key = current_pair[0] 
    current_value = current_pair[1] 
    wks.update_acell('A{}'.format(i), current_key) 
    wks.update_acell('B{}'.format(i), current_value) 
+0

哪來這種添加到代碼的最佳地點?我加了這個,並且一直給出無效的語法錯誤。 –

+0

我不太確定不知道整個代碼。語法錯誤在哪裏?導入應該始終放在代碼的頂部。 – tehtea