使用Notion API 2022-06-28版本返回异常值求助
Notion API查询数据库仅返回属性ID,无实际数据的解决方案
问题诊断
你遇到的核心问题是请求体没有被正确传递给Notion API,导致服务器返回的是数据库属性的元数据(仅ID)而非每条记录的实际内容。你的代码里调用requests.post时,没有把payload以JSON格式发送——默认情况下requests.post会把数据编码为表单格式,而Notion API要求的是JSON格式的请求体。
修正后的代码
把请求部分改成用json参数传递payload:
import requests database_id = '************************************' token_key = '************************************' url = f"https://api.notion.com/v1/databases/{database_id}/query" payload = { "page_size": 100 } headers = { "Accept": "application/json", "Notion-Version": "2022-06-28", "Content-Type": "application/json", "Authorization": f"Bearer {token_key}" } # 关键修改:用json=payload传递JSON格式的请求体 response = requests.post(url, headers=headers, json=payload) data = response.json()
验证结果
执行修正后的代码后,再访问data['results'][0]['properties'],应该能看到每个属性的完整结构:比如文本类型会包含rich_text字段,数字类型包含number字段,日期类型包含date字段等,而非仅返回属性ID。
额外排查点
如果修正后仍有问题,可以检查:
- 你的集成token是否拥有该数据库的读取权限(在Notion工作区的集成设置里确认权限范围)
- 数据库ID是否正确复制(注意不要包含URL中
?v=开头的额外参数) Notion-Version请求头是否准确(2022-06-28是官方支持的稳定版本)
内容的提问来源于stack exchange,提问作者Andy Lee
相关产品推荐
相关产品推荐

