我正在尝试使用 Google Sheets API 将新行附加到现有的 Google Sheet 中。身份验证已成功进行,并且代码能够读取工作表的内容。
但是,当我尝试使用service.spreadsheets().values().append(...)
,我收到以下 HttpError:"Invalid JSON payload received. Unknown name "": Root element must be a message."
这是我的代码:
from json import dumps as jsdumps
credentials = get_credentials()
http = credentials.authorize(httplib2.Http())
discoveryUrl = discoveryUrl = ('https://sheets.googleapis.com/$discovery/rest?version=v4')
service = discovery.build('sheets', 'v4', http=http, discoveryServiceUrl=discoveryUrl)
spreadsheetId = '{...}'
rangeName = "Sheet1"
value_input_option = 'RAW'
insert_data_option = 'INSERT_ROWS'
value_range_body = {
"range": rangeName,
"majorDimension:": "ROWS",
"values": list(rd.values()), # rd is just a dictionary with some stuff in it
}
所以当我尝试发送它时:
request = service.spreadsheets().values().append(spreadsheetId=spreadsheetId, range=rangeName, valueInputOption=value_input_option, insertDataOption=insert_data_option, body=jsdumps(value_range_body))
运行后request.execute()
,我收到上面列出的错误。
我也有类似的问题。这对我有用:
spreadsheetId = 'foobar'
range = 'Sheet1!A1'
body = {
'values': [data],
"majorDimension:": "ROWS",
}
self.service.spreadsheets().values().append(spreadsheetId=spreadsheet_id, range=range,
valueInputOption='RAW',
insertDataOption='INSERT_ROWS',
body=body).execute()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)