You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Notion API基于页面模板创建数据库条目及批量导入数据?

用Notion API基于模板批量填充数据库的解决方案

Notion API目前没有直接支持“应用现有模板创建数据库条目”的官方接口,得通过先提取模板结构,再批量复用的方式实现,具体步骤如下:

1. 提取模板页面的完整块结构

先调用retrieve block children接口,把你现有模板页面的所有内容块(文本、表格、嵌入内容等)的JSON结构拉取下来,这就是后续复用的“模板原型”。

  • 示例Python代码:
import requests

NOTION_API_KEY = "你的API密钥"
TEMPLATE_PAGE_ID = "你的模板页面ID"

headers = {
    "Authorization": f"Bearer {NOTION_API_KEY}",
    "Notion-Version": "2022-06-28"  # 采用最新稳定版本
}

# 获取模板页面的所有子块,分页获取可处理超过100块的情况
resp = requests.get(
    f"https://api.notion.com/v1/blocks/{TEMPLATE_PAGE_ID}/children",
    headers=headers,
    params={"page_size": 100}
)
template_blocks = resp.json()["results"]

把获取到的template_blocks保存好,这就是模板的完整内容结构。

2. 批量创建数据库条目并套用模板

针对每条要插入的记录,调用create page接口,同时把模板块作为新页面的子块传入,再设置数据库要求的属性字段值。

  • 批量创建的示例代码:
TARGET_DATABASE_ID = "目标数据库ID"
# 模拟要插入的数千条记录
records = [
    {"title": "项目记录1", "状态": "进行中"},
    {"title": "项目记录2", "状态": "已完成"},
    # 更多记录...
]

for item in records:
    # 构造请求体:设置数据库属性+套用模板块
    payload = {
        "parent": {"database_id": TARGET_DATABASE_ID},
        "properties": {
            # 对应你的数据库属性字段,按需调整
            "名称": {
                "title": [{"text": {"content": item["title"]}}]
            },
            "状态": {
                "select": {"name": item["状态"]}
            }
        },
        "children": template_blocks  # 直接复用模板的块结构
    }

    resp = requests.post(
        "https://api.notion.com/v1/pages",
        headers=headers,
        json=payload
    )
    # 处理请求结果:记录成功/失败状态、实现重试逻辑

3. 关键注意事项

  • 速率限制处理:Notion API写操作的速率限制是每分钟最多3次请求,插入数千条记录必须做请求排队+重试机制,可以用time.sleep()控制请求间隔,或者用队列库批量调度。
  • 动态内容替换:如果模板里有占位文本(比如{{项目名称}}),可以在批量创建前遍历template_blocks,把占位符替换成当前记录的实际内容。
  • 块兼容性检查:确保模板中的所有块类型在数据库页面中都支持(比如某些高级嵌入块可能有特殊权限要求),提前在模板中测试调整。

内容的提问来源于stack exchange,提问作者Rhia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 21:40:58