调用Notion API创建数据库页面时出现page_id验证错误如何解决
报错原因
你代码里动态添加Professor属性的逻辑存在位置错误,直接将该属性写到了请求体data的根节点,而非properties子节点下,非法的根节点字段触发了Notion API校验逻辑的异常,最终误报了page_id相关的校验错误。
如果你确认parent变量确实是正确的字符串类型数据库ID,那大概率就是这个赋值位置错误导致的校验异常。不排除你在代码其他位置意外给data['parent']对象添加了值为null的page_id字段的可能性。
解决方法
- 修正
Professor属性的赋值路径,将其写入properties节点下:
if prof: # 原错误写法:data['Professor'] = ... data['properties']['Professor'] = { "rich_text": [ { "text": { "content": prof } } ] }
- 增加调试打印逻辑,确认
parent是纯字符串类型,且data['parent']中仅包含database_id一个键:
# 打印parent变量的类型和值,确认是字符串类型的数据库ID print(type(parent), parent) # 打印parent字段的完整内容 print(data['parent']) # 如果发现存在多余的page_id字段,手动删除 if 'page_id' in data['parent']: del data['parent']['page_id']
- 确认请求头中添加了正确的Notion版本标识,示例如下:
headers = { "Authorization": "Bearer 你的token", "Notion-Version": "2022-06-28", "Content-Type": "application/json" }
内容的提问来源于stack exchange,提问作者lovefaithswing
相关产品推荐
相关产品推荐

