飞书多维表格删除所有记录(清空)

飞书给的开发文档实在是有点难看懂,我找了半天批量删除一直没有合适的,它给的是根据记录id来删除,但是查询记录id比较麻烦,在我不断尝试下,发现在查询的时候不输入参数,默认是全部查询,以下代码都是根据这个方法完成的

需要修改的参数

if __name__ == '__main__':
    # 修改为自己的
    APP_TOKEN = ""
    TABLE_ID = ""
    USER_ACCESS_TOKEN = ""

    delete_main(APP_TOKEN, TABLE_ID, USER_ACCESS_TOKEN)

完整代码

import json
import lark_oapi as lark
from lark_oapi.api.bitable.v1 import *


# SDK 使用说明: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/server-side-sdk/python--sdk/preparations-before-development
# 以下示例代码默认根据文档示例值填充,如果存在代码问题,请在 API 调试台填上相关必要参数后再复制代码使用
def find(APP_TOKEN,TABLE_ID,USER_ACCESS_TOKEN):
    # 创建client
    # 使用 user_access_token 需开启 token 配置, 并在 request_option 中配置 token
    client = lark.Client.builder() \
        .enable_set_token(True) \
        .log_level(lark.LogLevel.DEBUG) \
        .build()

    # 构造请求对象
    request: SearchAppTableRecordRequest = SearchAppTableRecordRequest.builder() \
        .app_token(APP_TOKEN) \
        .table_id(TABLE_ID) \
        .page_size(200) \ #  查询多少记录,你要删多少就改成多少
        .request_body(SearchAppTableRecordRequestBody.builder()
            .build()) \
        .build()

    # 发起请求
    option = lark.RequestOption.builder().user_access_token(USER_ACCESS_TOKEN).build()
    response: SearchAppTableRecordResponse = client.bitable.v1.app_table_record.search(request, option)

    # 处理失败返回
    if not response.success():
        lark.logger.error(
            f"client.bitable.v1.app_table_record.search failed, code: {response.code}, msg: {response.msg}, log_id: {response.get_log_id()}, resp: \n{json.dumps(json.loads(response.raw.content), indent=4, ensure_ascii=False)}")
        return

    # 处理业务结果
    # lark.logger.info(lark.JSON.marshal(response.data, indent=4))
    return json.loads(lark.JSON.marshal(response.data))['items']


# SDK 使用说明: https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/server-side-sdk/python--sdk/preparations-before-development
# 以下示例代码默认根据文档示例值填充,如果存在代码问题,请在 API 调试台填上相关必要参数后再复制代码使用
def delete(APP_TOKEN,TABLE_ID,USER_ACCESS_TOKEN,record_lst):
    # 创建client
    # 使用 user_access_token 需开启 token 配置, 并在 request_option 中配置 token
    client = lark.Client.builder() \
        .enable_set_token(True) \
        .log_level(lark.LogLevel.DEBUG) \
        .build()

    # 构造请求对象
    request: BatchDeleteAppTableRecordRequest = BatchDeleteAppTableRecordRequest.builder() \
        .app_token(APP_TOKEN) \
        .table_id(TABLE_ID) \
        .request_body(BatchDeleteAppTableRecordRequestBody.builder()
            .records(record_lst)
            .build()) \
        .build()

    # 发起请求
    option = lark.RequestOption.builder().user_access_token(USER_ACCESS_TOKEN).build()
    response: BatchDeleteAppTableRecordResponse = client.bitable.v1.app_table_record.batch_delete(request, option)

    # 处理失败返回
    if not response.success():
        lark.logger.error(
            f"client.bitable.v1.app_table_record.batch_delete failed, code: {response.code}, msg: {response.msg}, log_id: {response.get_log_id()}, resp: \n{json.dumps(json.loads(response.raw.content), indent=4, ensure_ascii=False)}")
        return

    # 处理业务结果
    # lark.logger.info(lark.JSON.marshal(response.data, indent=4))

def delete_main(APP_TOKEN,TABLE_ID,USER_ACCESS_TOKEN):

    data_lst = find(APP_TOKEN,TABLE_ID,USER_ACCESS_TOKEN)
    record_id = []
    [record_id.append(data['record_id']) for data in data_lst]

    delete(APP_TOKEN,TABLE_ID,USER_ACCESS_TOKEN,record_id)

if __name__ == '__main__':
    APP_TOKEN = ""
    TABLE_ID = ""
    USER_ACCESS_TOKEN = ""

    delete_main(APP_TOKEN, TABLE_ID, USER_ACCESS_TOKEN)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值