我正在嘗試將 python dict 字符串寫入(附加)到 Google Sheets下面是我的代碼SCOPES = 'https://www.googleapis.com/auth/spreadsheets.readonly'SPREADSHEET_ID = 'XXX'RANGE_NAME = 'Sheet1!A2:F2'now = time.strftime('%d-%m-%Y %H:%M')def main(): store = file.Storage('token.json') creds = store.get() if not creds or creds.invalid: flow = client.flow_from_clientsecrets('credentials.json', SCOPES) creds = tools.run_flow(flow, store) service = build('sheets', 'v4', http=creds.authorize(Http())) request = service.spreadsheets().values().append(spreadsheetId= SPREADSHEET_ID, range= RANGE_NAME, valueInputOption='USER_ENTERED', insertDataOption='INSERT_ROWS', body= {now, data2['pagespeed_score'], data2['yslow_score'], Loadedtime, pagesize, data2['page_elements'],}) response = request.execute() print(response)if __name__ == '__main__': main()但我收到一個錯誤:"TypeError: {2.1982345581054688, '11-09-2018 13:08', 8.836, 109, 52, 55} is not JSON serializable"我認為這些值應該是 json 格式,但我的值是在 python 字典中。
2 回答

繁星淼淼
TA貢獻1775條經驗 獲得超11個贊
這里:
body= {now, data2['pagespeed_score'], data2['yslow_score'], Loadedtime, pagesize, data2['page_elements'],}
您正在傳遞 a set
,它在 JSON 中沒有任何等效項。您必須檢查預期類型的谷歌表 API 文檔(可能dict
實際上是)。

人到中年有點甜
TA貢獻1895條經驗 獲得超7個贊
通過如下更改代碼解決了它,將值集更改為 dict
values = [now, pagespeed, yslow, Loadedtime, pagesize, element]
body = {'values': [values]}
result = service.spreadsheets().values().append(
spreadsheetId=SPREADSHEET_ID, range=RANGE_NAME,
valueInputOption= 'USER_ENTERED', body=body).execute()
添加回答
舉報
0/150
提交
取消