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

无法通过Python访问Notion数据库全部条目,求助获取前6条方法

解决Notion数据库API无法获取前6条数据的问题

核心问题

你错误地将page_size和start_cursor放在了请求头(headers)中,这两个分页参数属于POST请求的**请求体(body)**参数,Notion API不会从请求头读取它们,导致你的设置完全无效,默认返回最多100条最新条目。

获取前6条数据的正确方法

要拿到数据库的前6条(最早创建的)条目,需要:

  1. 将分页参数放入请求体
  2. 指定升序排序(默认是倒序,会返回最新的6条)

代码示例:

import requests

_url = 'https://api.notion.com/v1/databases/xxxxx/query'
_header = {
    'Authorization': _auth,
    'Content-Type': 'application/json',
    'Notion-Version': '2021-08-16'
}
# 请求体参数:设置每页6条,按创建时间升序排列
payload = {
    'page_size': 6,
    'sorts': [
        {
            'property': 'Created time',
            'direction': 'ascending'
        }
    ]
}
_result = requests.post(_url, headers=_header, json=payload)
# 处理返回结果
print(_result.json())

如果需要按其他属性排序,替换property的值即可。

获取全部106条数据的方法

Notion API单次请求最多返回100条数据,需要通过循环分页获取全部条目:

import requests

def fetch_all_entries(database_id, auth_token):
    url = f'https://api.notion.com/v1/databases/{database_id}/query'
    headers = {
        'Authorization': auth_token,
        'Content-Type': 'application/json',
        'Notion-Version': '2021-08-16'
    }
    all_entries = []
    start_cursor = None

    while True:
        payload = {'page_size': 100}
        if start_cursor:
            payload['start_cursor'] = start_cursor
        
        res = requests.post(url, headers=headers, json=payload)
        res_data = res.json()
        
        all_entries.extend(res_data['results'])
        
        # 没有下一页时终止循环
        if not res_data.get('has_more'):
            break
        start_cursor = res_data['next_cursor']
    
    return all_entries

# 调用示例
full_data = fetch_all_entries('xxxxx', _auth)
print(f"共获取到 {len(full_data)} 条数据")

注意事项

  • start_cursor不能手动设为0,必须使用上一次请求返回的next_cursor值
  • 确保你的API令牌(_auth)有该数据库的读取权限
  • Notion-Version建议使用官方支持的版本,避免兼容性问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 03:45:35