当前位置: 首页 > 知识库问答 >
问题:

使用API从Google工作表中删除特定行

章飞虎
2023-03-14

我需要使用Python从工作表中删除一行。我们的工作表上有数千条记录,数据会定期更新,因为所有的事情都是用Python完成的,所以这个任务也需要用Python完成。

这就是我到目前为止从留档和其他教程中得到的:

def connect_to_sheet():
    creds = None
    if os.path.exists('token.pickle'):
        with open('token.pickle', 'rb') as token:
            creds = pickle.load(token)
    if not creds or not creds.valid:
        if creds and creds.expired and creds.refresh_token:
            creds.refresh(Request())
        else:
            flow = InstalledAppFlow.from_client_secrets_file(
                'credentials.json', SCOPES)
            creds = flow.run_local_server(port=0)
        with open('token.pickle', 'wb') as token:
            pickle.dump(creds, token)    
    service = build('sheets', 'v4', credentials=creds)
    sheet = service.spreadsheets()
    return sheet

与工作表的连接必须在不同的函数中进行,因为我在其他地方多次使用它,但在下一个函数中,我会发出请求并得到错误:

request_body = {
              "requests": [
                {
                  "deleteDimension": {
                    "range": {
                      "sheetId": SheetID,
                      "dimension": "ROWS",
                      "startIndex": startIndex,
                      "endIndex": endIndex
                    }
                  }
                }
                ]
            }
                result = sheet.values().batchUpdate(spreadsheetId=SPREADSHEET_ID_4G,body=request_body).execute()

错误:

我搜索过的每一个SOF示例和类似问题都使用了完全相同的请求!但我仍然无法找出导致此错误的问题<非常感谢您的帮助,谢谢。

共有1个答案

翟博雅
2023-03-14
  • deleteDimension用于电子表格的方法。BatchUpdateinSheetsAPI。但在您的脚本中,它与电子表格方法一起使用。价值观批量更新。我想这就是你的问题所在

当上述各点反映到脚本中时,它将变成如下所示。

result = sheet.values().batchUpdate(spreadsheetId=SPREADSHEET_ID_4G,body=request_body).execute()
result = sheet.batchUpdate(spreadsheetId=SPREADSHEET_ID_4G,body=request_body).execute()
  • 在您的脚本中,我认为您的请求主体是电子表格的方法。batchUpdate是正确的
  • 在此修改中,假设您的工作表可用于使用spreadsheets.batchUpdate的方法。
  • 方法:spreadsheets.batch更新
  • 删除维度请求
 类似资料:
  • 根据API,似乎无法指定将数据附加到何处的工作表。它在第一个工作表中附加所有内容。真的是这样吗? 因为我可以创建一个包含多张工作表的文件,但是我不能在第二张工作表上写字?

  • 我有一个表格,每一行都有数据填充和相应的删除按钮。 HTML代码: 当我想要从模式中删除一行时,单击该行中的删除按钮(模式)会调用该行。我使用函数“onDelete(emp.id)”在点击时调用一个模式 Typescriptcode:这里它正确地选择了我想要删除的行id 从模态按钮,我试图通过调用按钮上的函数来删除单击“delete员工(emp.id)”Typecriptcode:这里我无法通过选

  • 我想写数据到我的工作表: 但在日志中我看到: 我做错了什么?我将非常感谢为您提供的示例代码:) 在例子中没有足够的信息(https://developers.google.com/sheets/api/guides/values#writing_to_a_single_range)

  • 问题内容: 假设我有一个充满昵称的文本文件。如何使用Python从此文件中删除特定的昵称? 问题答案: 首先,打开文件并从文件中获取所有行。然后以写模式重新打开文件并写回你的行,但要删除的行除外: 你需要在比较中使用换行符,因为如果文件不以换行符结尾,则最后一个line也不行。

  • 带有的QueueAccessRQ返回“如果离开队列,则无法执行此操作” 即使在QueueAccessRQ之前执行IgnoreTransactionRQ或EndTransactionRQ,消息也是相同的,除了IgnoreTransactionRQ后跟QueueAccessRQ和返回“无法结束事务-工作区中没有PNR” 如何从队列中删除特定的PNR?

  • 我正在尝试编写一种方法,删除每组4个元素中的第一个、第二个和第三个元素。它似乎根本不起作用。有人能帮忙吗?