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

如何通过Notion API向指定数据库添加页面而非创建新数据库?

解决Notion API向指定数据库添加页面的错误问题

问题说明

我希望通过Notion API向指定数据库中添加页面,但运行当前代码后,却在页面内创建了新的数据库。

运行脚本前效果

运行脚本前的效果

运行脚本后效果

运行脚本后的效果

期望效果

期望的效果

错误原因分析

  • 接口URL错误:当前代码使用的https://api.notion.com/v1/databases/是创建新数据库的接口,而向指定数据库添加页面需要调用创建页面的接口https://api.notion.com/v1/pages/
  • Parent参数错误:向数据库添加页面时,parent字段仅需指定database_id,不能同时传入page_id,否则会导致Notion误解为在指定页面下创建新数据库
  • 字段格式错误:Name的title字段格式不符合Notion API要求,需要是包含text对象的数组

修正后的代码

import json
import requests

def createPage(database_id, headers, url):
    newPageData = {
        "parent": {
            "database_id": database_id,
        },
        "properties": {
            "Name": {"title": [{"text": {"content": "HI THERE"}}]},
        },
    }

    data = json.dumps(newPageData)
    res = requests.request("POST", url, headers=headers, data=data)

    print(res.status_code)
    print(res.text)

database_id = "ea28de8e9cca4f62b4c4da3522869d03"
url = "https://api.notion.com/v1/pages/"  # 替换为创建页面的接口
key = "KEY"

headers = {
    "Authorization": f"Bearer {key}",
    "accept": "application/json",
    "Notion-Version": "2021-05-11",
    "content-type": "application/json",
}

createPage(database_id, headers, url)

关键修改点

  1. 接口URL替换为创建页面的地址/v1/pages/
  2. 删除parent中的page_id参数,仅保留目标数据库的database_id
  3. 修正Name字段的格式,将title调整为包含text对象的数组结构

内容的提问来源于stack exchange,提问作者Hashem A. Damrah

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 21:55:23