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

Python调用Notion API按标题查询数据库页面 如何获取page_id更新封面

Notion数据库查询过滤失效修复方案

你遇到的过滤规则不生效、返回所有数据库页面的问题,核心原因是请求传参格式不符合Notion API要求,具体修复方法如下:

核心问题修复

你当前代码使用data参数传递请求体,requests会默认将参数序列化为表单格式,而Notion API要求请求体必须为JSON格式,因此服务端无法识别过滤规则,直接返回全量数据。将data=search_data修改为json=search_data即可解决,修改后代码如下:

url = f"https://api.notion.com/v1/databases/{database_id}/query"
search_data = {
    "filter":{
        "and": [
            {
                "property":"Drama Title",
                "text": {
                    "contains":"example_show"
                }
            }
        ]}
    }      
res = requests.request("POST", url, headers=headers, json=search_data)
page = res.json()
print(page)

其他可能的失效场景排查

  • 确认数据库中对应属性的名称和代码里的Drama Title完全一致,包括大小写、空格、特殊字符,任意不一致都会导致过滤规则失效
  • 如果你要筛选的Drama Title是数据库的标题类型属性(不是普通文本属性),需要把过滤条件的text字段改为title,示例如下:
{
    "property":"Drama Title",
    "title": {
        "contains":"example_show"
    }
}
  • 确认你的API Token拥有该数据库的读取权限,可在对应Notion数据库的「连接」设置中核对权限配置

过滤规则生效后,你可以从返回结果的results[0]["id"]字段获取目标页面的page_id,再调用PATCH https://api.notion.com/v1/pages/{page_id}接口即可完成页面封面修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 04:06:03