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

使用notion-sdk-py连接Notion页面失败,提示找不到数据库ID

解决Notion SDK Python中"Could not find database with ID"错误

针对你遇到的notion_client.errors.APIResponseError: Could not find database with ID错误,按以下步骤排查解决:

1. 核对数据库ID的正确性

错误提示中的ID是9e8f0319-9daf-4a73-a900-1a2afcab9450(带连字符),而你代码中使用的是无连字符版本9e8f03199daf4a73a9001a2afcab9450——两种格式Notion SDK都支持,但必须确保是目标数据库的真实ID。获取正确ID的方式:

  • 打开目标数据库页面,复制浏览器地址栏的链接,格式为https://www.notion.so/[工作区名]/[数据库名]-[ID],链接末尾的那串字符就是数据库ID。

2. 将数据库共享给你的Notion集成

这是该错误最常见的原因,按以下操作完成共享:

  • 打开目标数据库页面,点击右上角「分享」按钮
  • 在分享弹窗中,搜索你创建的Notion集成名称(即生成secret_xxx Token的集成)
  • 给集成分配「编辑」或「只读」权限(根据你的需求),点击「邀请」

3. 检查集成的权限范围

确保你的Notion集成在创建时开启了必要的权限:

  • 登录Notion开发者后台,找到对应集成
  • 确认「权限」选项卡中,已勾选「数据库内容」相关权限(如「读取数据库内容」「编辑数据库内容」)

4. 确认目标是数据库而非普通页面

notion.databases.query接口仅适用于Notion数据库(表格、看板、日历等类型)。如果你的目标是普通页面,需改用页面相关API,比如notion.pages.retrieve获取页面信息,或notion.blocks.children.list获取页面内的块内容。

修正后的示例代码

from notion_client import Client
from notion_client.helpers import collect_paginated_api

notion = Client(auth="secret_#################")
list_users_response = notion.users.list()
print(list_users_response)

# 使用正确的数据库ID(带连字符或不带均可,确保与实际一致)
try:
    all_results = collect_paginated_api(
        notion.databases.query, database_id="9e8f0319-9daf-4a73-a900-1a2afcab9450"
    )
    print("查询结果:", all_results)
except Exception as e:
    print("错误详情:", str(e))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 19:35:20