使用 Python SDK 将数据写入飞书多维表格

本文档记录了如何通过 Python 代码将文本信息自动保存到指定的飞书多维表格(Base/Bitable)中。主要包含飞书开放平台的配置、表格授权以及环境安装步骤。

一、 飞书开放平台配置

在使用代码之前,需要先创建一个“机器人”身份并赋予相应权限。

  1. 创建应用
    登录 飞书开放平台,创建一个企业自建应用。
  2. 配置权限
    进入应用的“权限管理”页面,搜索并开通以下权限(Scope):
    • bitable:app (查看、评论、编辑和管理多维表格)
    • base:record:create (新增记录)

二、 获取多维表格信息

代码中需要定位到具体的表格,需要从浏览器地址栏中获取以下两个 ID。

  1. 打开目标多维表格
    使用浏览器访问你需要写入数据的表格。
  2. 提取 ID
    观察浏览器地址栏的 URL,格式通常如下:
    https://base_url/base/{app_token}?table={table_id}
    • App Token:紧跟在 base/ 后面的那串字符。
    • Table ID:URL 参数中 table= 后面的那串字符。

三、 文档授权(关键步骤)

仅有 API 权限是不够的,还需要将应用“拉入”具体的文档中,否则会报错 Forbidden (91403)

  1. 在多维表格页面右上角,点击 “…”(菜单按钮)。
  2. 选择 “更多” -> “添加文档应用”
  3. 在搜索框中输入你在第一步创建的应用名称
  4. 点击添加,并务必勾选 “可编辑” 权限。

四、 安装环境

在本地 Python 环境中安装飞书官方 SDK:

pip install lark-oapi 

五、 代码实现

完成以上配置后,将 App TokenTable ID 以及应用的 App IDApp Secret 填入代码即可运行。

import lark_oapi as lark from lark_oapi.api.bitable.v1 import * # ================= 配置信息 ================= APP_ID = "cli_xxxx" APP_SECRET = "2JBE7yyyyyy" APP_TOKEN = "VvgbbVCOzalrcfsxxxxxxx" TABLE_ID = "tblMGgT4yyyyyyy" # =========================================== def save_to_feishu_sdk(text_content): # 1. 构建 Client client = lark.Client.builder() \ .app_id(APP_ID) \ .app_secret(APP_SECRET) \ .build() # 2. 构造请求对象 # 注意:fields 中的 key 必须与表格列名一致 request = CreateAppTableRecordRequest.builder() \ .app_token(APP_TOKEN) \ .table_id(TABLE_ID) \ .request_body(AppTableRecord.builder() \ .fields({ "消息内容": text_content }) \ .build()) \ .build() # 3. 发起请求 response = client.bitable.v1.app_table_record.create(request) # 4. 处理结果 if not response.success(): print(f"请求失败, code: {response.code}, msg: {response.msg}") return print(f"保存成功! Record ID: {response.data.record.record_id}") if __name__ == "__main__": save_to_feishu_sdk("内容: 卖出:1000ETF(159629.XSHE:2.512) - 中证2000策略") 

使用 requests 库(原生 API)

import requests # ================= 配置信息 ================= APP_ID = "cli_xxxx" APP_SECRET = "2JBE7yyyyyy" APP_TOKEN = "VvgbbVCOzalrcfsxxxxxxx" TABLE_ID = "tblMGgT4yyyyyyy" # =========================================== def get_tenant_access_token(app_id, app_secret): """获取访问凭证 (tenant_access_token)""" url = "https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal" headers = {"Content-Type": "application/json; charset=utf-8"} payload = { "app_id": app_id, "app_secret": app_secret } response = requests.post(url, headers=headers, json=payload) if response.status_code == 200: return response.json().get("tenant_access_token") else: raise Exception(f"获取 Token 失败: {response.text}") def add_record(access_token, app_token, table_id, data_fields): """向多维表格添加一条记录""" url = f"https://open.feishu.cn/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/records" headers = { "Authorization": f"Bearer {access_token}", "Content-Type": "application/json; charset=utf-8" } # 构建请求体 payload = { "fields": data_fields # 这里的 keys 必须对应多维表格里的列名 } response = requests.post(url, headers=headers, json=payload) return response.json() def save_to_feishu(text_content): try: # 1. 获取 Token token = get_tenant_access_token(APP_ID, APP_SECRET) print("Token 获取成功") # 2. 准备要保存的数据 # 注意:字典的 Key 必须完全匹配多维表格的【字段名称】 text_data = { "消息内容": text_content } # 3. 写入数据 result = add_record(token, APP_TOKEN, TABLE_ID, text_data) if result.get("code") == 0: print("数据保存成功!记录ID:", result["data"]["record"]["record_id"]) else: print("保存失败:", result) except Exception as e: print("发生错误:", e) if __name__ == "__main__": save_to_feishu('内容: 卖出:1000ETF(159629.XSHE:2.512) - 中证2000策略') 

Read more

双剑破天门:攻防世界Web题解之独孤九剑心法(八)

双剑破天门:攻防世界Web题解之独孤九剑心法(八)

免责声明:用户因使用公众号内容而产生的任何行为和后果,由用户自行承担责任。本公众号不承担因用户误解、不当使用等导致的法律责任 **本文以攻防世界部分题为例进行演示,后续会对攻防世界大部分的web题目进行演示,如果你感兴趣请关注** 目录 一:WEB 2 二:Web_php_unserialize 三:php_rce 四:web_php_include 五:总结 1. WEB 2 2. Web_php_unserialize 3. php_rce 4. web_php_include 一:WEB 2 打开是一个php代码 代码审计 1.首先给了一段密文也就是需要解密的flag 2.然后对传进来的str进行字符串反转($_o) 3.

By Ne0inhk
从安装到实测:基于 Claude Code + GLM-4.7 的前端生成与评测实战

从安装到实测:基于 Claude Code + GLM-4.7 的前端生成与评测实战

目录 引言 一、命令行使用 Claude Code(安装与配置) 步骤一:安装 Claude Code(命令行) 步骤二:配置蓝耘MaaS平台 步骤三:常见排查 二、编码工具中使用 claude-code:三个端到端案例(含提示与实测评价) 案例 1:交互式个人血压记录网页 — 前端端到端生成 案例 2:Web 双人对战小游戏(Joy-Con 风格) 案例 3:前端可视化组件生成 三、补充建议(快速 checklist) 总结 引言 近一年来,代码生成类工具逐渐从“写几行示例代码”走向“完整功能交付”,但真正落到工程实践时,很多工具仍停留在 Demo 阶段:要么跑不起来,

By Ne0inhk
【前端】Vue 组件开发中的枚举值验证:从一个Type属性错误说起

【前端】Vue 组件开发中的枚举值验证:从一个Type属性错误说起

🌹欢迎来到《小5讲堂》🌹 🌹这是《小程序》系列文章,每篇文章将以博主理解的角度展开讲解。🌹 🌹温馨提示:博主能力有限,理解水平有限,若有不对之处望指正!🌹 👨💻 作者简介 🏆 荣誉头衔:2024博客之星Top14 | ZEEKLOG博客专家 | 阿里云专家博主 🎤 经历:曾多次进行线下演讲,亦是 ZEEKLOG内容合伙人 以及 新星优秀导师 💡 信念:“帮助别人,成长自己!” 🚀 技术领域:深耕全栈,精通 .NET Core (C#)、Python、Java,熟悉主流数据库 🤝 欢迎交流:无论是基础概念还是进阶实战,都欢迎与我探讨! 目录 * 前言 * 解决过程 * 一、错误场景还原 * 1.1 错误发生的位置 * 1.2 常见的触发场景 * 二、深入理解 Vue

By Ne0inhk
【数据结构实战】一起开启数据结构有序之门

【数据结构实战】一起开启数据结构有序之门

🏝️专栏: 【数据结构实战篇】 🌅主页: f狐o狸x 目录 一、排序的概念及应用         1.1 排序的概念          1.2 排序的应用          1.3 常见的排序算法 二、插入排序         2.1 直接插入排序         2.1.1 基本思想         2.1.2 直接插入排序代码实现         2.1.3 直接插入排序的特性总结         2.2 希尔排序         2.2.1 基本思想         2.2.2 希尔排序代码实现         2.2.3 希尔排序的特性总结 三、选择排序

By Ne0inhk