status
Published
date
May 19, 2021
slug
notionapi
summary
使用python添加notion记录
category
技术分享
tags
Python
- 创建一个 Notion 机器人,输入名字,即可快速创建。
- 获取Token,点击 show,然后复制备用。

- 在需要使用API的页面中,点击 Share 并选择 Invite ,将机器人邀请进去,让其用于编辑的权限。


- 获取数据表的 database_id,点击数据表右上方的 ... 选择 Copylink ,连接如下方:https://www.notion.so/xinhuoip/9bcf00dce55c42799f3b177dc325aa18?v=217bbe82893e4e4aa228a19f3f2dc888 9bcf00dc-e55c-4279-9f3b-177dc325aa18 即为database_id 。
- 使用python的requests库get方法来读取notion页面数据,示例代码如下:
import requests
token = '这个是你创建机器人时获取到的见第二步'
r = requests.request(
"GET",
"https://api.notion.com/v1/pages/5b35b115ddc442e080f1b1b27e5b0ae0",#字符串为页面id
headers={"Authorization": "Bearer " + token, "Notion-Version": "2021-05-13"},
)
print(r.txet)以上代码输出结果如下图:

- 通过python的requests库中的post方法来操作notion添加数据,示例代码如下:
import requests
token = '第二步中获取到的token值'
def post(url,title,content):
requests.request("POST",
"https://api.notion.com/v1/pages",
json={
"parent": {"type": "database_id", "database_id": "9bcf00dc-e55c-4279-9f3b-177dc325aa18"},
"properties": {
"来源": {"url": url},
"标题": {"title": [{"type": "text", "text": {"content": title}}]},
"描述": {"rich_text": [{"type": "text", "text": {"content": content}}]},
},
"children": [
{
"object": "block",
"type": "paragraph",
"paragraph": {
"text": [{ "type": "text", "text": { "content": content } }]
}
}
]
},
headers={"Authorization": "Bearer " + token, "Notion-Version": "2021-05-13"},
)
print(title + '---' +url)
post('https://zdl.im','测试3','今天天气很不错')代码运行效果如下:

数据添加成功,代码中children中的部分为在此条数据的page中添加一个block,显示效果如下:

- 结合以前的线报类代码,可直接将采集的数据直接写入到notion。
更多方法请参考下方链接。

