我遵循了指南中的参考代码-https://developers.google.com/sheets/api/guides/values。但是,当我调用batchUpdate()时,出现错误“接收到无效的JSON有效负载。'data[0]'处的未知名称“ range”:Proto字段未重复,无法启动列表”。
关于什么可能是错误的以及如何解决的任何建议?
# Preparing data to be written back to sheet
data = [
{
'range': range_name,
'values': values
},
]
body = {
'valueInputOption': "USER_ENTERED",
'data': data,
}
request = service.spreadsheets().values().batchUpdate(spreadsheetId=SPREADSHEET_ID, body=body)
response = request.execute()
“身体”的含量=
{'valueInputOption': 'USER_ENTERED',
'data': [{'range': ['!B251:I251', '!B252:I252', '!B254:I254', '!B256:I256'],
'values': "[['2020-06-04', 2, '123456789098765421abcdefg', '', 'test1', 1, None, 1], ['2020-06-04', 1, '123456789098765421abcdefg', '', 'test2', -1, None, 1], ['2020-06-04', 2, '123456789098765421abcdefg', '', 'test1', 3, None, 1], ['2020-06-04', 1, '123456789098765421abcdefg', '', 'test9', 4, None, 1]]"}]}
根据指南
values = [
[
# Cell values ...
],
# Additional rows
]
data = [
{
'range': range_name,
'values': values
},
# Additional ranges to update ...
]
body = {
'valueInputOption': value_input_option,
'data': data
}
result = service.spreadsheets().values().batchUpdate(
spreadsheetId=spreadsheet_id, body=body).execute()
print('{0} cells updated.'.format(result.get('totalUpdatedCells')))
但是,错误味精似乎表明参数'范围'未知?
答案 0 :(得分:0)
range
和范围数组,而该方法希望每个项目只有一个范围,那么核心请求将是: "data": [
{
"range1": "",
"values1": []
},
{
"range2": "",
"values2": []
}
]
None
用作一个空值-而是需要在逗号之间留一个空格:1,2, ,4
(或者,如果您想在None
中用"
括起"
将其作为字符串传递'
而不是单引号{{1}} 我建议您在实施Python之前先使用Try this API功能测试请求语法。