我正在尝试将 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
提交
取消