Notion API GET请求拉取数据失败,仅能获取首行求解决指引
Notion API 仅返回单条数据库数据的解决方法
- 替换请求方式:Notion 查询数据库的官方标准接口为
POST /v1/databases/{database_id}/query,不推荐使用 GET 请求。GET 请求存在 URL 参数长度限制,参数容易被截断,大概率会出现返回数据不全的问题。 - 检查
page_size参数配置:接口默认单次返回最大 100 条数据,如果你手动在请求参数中设置page_size: 1,就会仅返回单条数据,可根据需求将该参数调整到最大 100 的取值区间内。 - 实现游标分页逻辑:如果数据库总数据量超过单次请求的返回上限,接口返回结果中会携带非空的
next_cursor字段,你需要在下一次请求中传入start_cursor: 上一次请求返回的next_cursor值,循环发起请求直到next_cursor为null,合并所有请求的results字段即可拿到全量数据。
参考实现逻辑:all_data = [] current_cursor = None while True: req_params = { "page_size": 100, "start_cursor": current_cursor # 可自行补充filter、sorts等参数 } resp = requests.post( f"https://api.notion.com/v1/databases/{你的数据库ID}/query", headers=你的请求头, json=req_params ).json() all_data.extend(resp["results"]) current_cursor = resp["next_cursor"] if not current_cursor: break # all_data 即为全量数据库数据 - 校验过滤规则:如果请求中携带了
filter过滤参数,需确认过滤条件是否正确,若仅 1 条数据命中过滤规则,也会出现仅返回单条数据的情况。
内容的提问来源于stack exchange,提问作者Norberto Clemente
相关产品推荐
相关产品推荐

