为什么我会得到"未知名称......"调用Google表格API时出现名称错误?

时间:2016-12-14 01:46:57

标签: python google-sheets google-sheets-api

我尝试使用Google表格API复制表格。我已经成功地阅读和编写了变量,但我仍然坚持使用DuplicateSheetRequest代码batchUpdate()。我的代码如下所示:

requests = []
requests.append({
    "DuplicateSheetRequest": {
        "sourceSheetId": sheet_id_source,
        "insertSheetIndex": target_index,
        "newSheetId": 123456,
        "newSheetName": destination_sheet_name
    }
})
body = {
    'requests': requests
}
response = service.spreadsheets().batchUpdate(spreadsheetId=spreadsheetId,
                                           body=body).execute()

当我执行代码时,出现错误:

  

https://sheets.googleapis.com/v4/spreadsheets/ [sheet ID redacted]:batchUpdate?alt = json返回"收到的JSON有效负载无效。未知名称" duplicate_sheet_request" at'要求[0]':找不到字段。">

错误是"duplicate_sheet_request"而我的代码是DuplicateSheetRequest,这真是奇怪。 (我还测试了一些我知道错误的东西,例如"DuplicateSheetRequestsss",它变成了"duplicate_sheet_requestsss")。我不知道为什么变量名称正在追逐,尽管我倾向于认为这是一个红色的鲱鱼。

我能找到的最接近的是this Google Groups issue,这表明我尝试使用的方法可能不允许使用服务帐户,但我可能会误读该线程。

1 个答案:

答案 0 :(得分:1)

问题是我要查找的批量更新方法应该是duplicateSheet,而不是DuplicateSheetRequest

requests.append({
    "duplicateSheet": {
        "sourceSheetId": sheet_id_source,
        "insertSheetIndex": target_index,
        #"newSheetId": 123456,
        "newSheetName": destination_sheet_name
    }
})

嘎嘎嘎嘎。