Notion Helper - Notion助手
激活词: Notion / 笔记管理 / 知识库
安装
pip install notion-client
获取API密钥
- 访问 https://www.notion.so/my-integrations
- 创建新集成
- 复制API密钥
- 分享数据库给集成
Python实现
from notion_client import AsyncClient
import asyncio
class NotionHelper:
def __init__(self, token: str):
self.client = AsyncClient(auth=token)
async def create_page(self, parent_id: str, title: str, content: str = ""):
await self.client.pages.create(
parent={"database_id": parent_id},
properties={
"title": {
"title": [{"text": {"content": title}}]
}
},
children=[{
"object": "block",
"type": "paragraph",
"paragraph": {
"rich_text": [{"type": "text", "text": {"content": content}}]
}
}]
)
async def query_database(self, db_id: str, filter_props: dict = None):
params = {"database_id": db_id}
if filter_props:
params["filter"] = filter_props
return await self.client.databases.query(**params)
async def update_page(self, page_id: str, properties: dict):
await self.client.pages.update(page_id, properties=properties)
async def get_page(self, page_id: str):
return await self.client.pages.retrieve(page_id)
async def search(self, query: str):
return await self.client.search(query)
使用示例
async def main():
helper = NotionHelper("secret_xxx")
# 创建页面
await helper.create_page(
parent_id="database_id",
title="AI学习笔记",
content="今天学习了机器学习..."
)
# 搜索页面
results = await helper.search("AI")
for page in results['results']:
print(page['title'])
# 查询数据库
pages = await helper.query_database("database_id")
for page in pages['results']:
print(page['properties']['title']['title'][0]['text']['content'])
asyncio.run(main())
数据类型
| 类型 | 说明 |
|---|---|
| title | 标题 |
| rich_text | 文本 |
| number | 数字 |
| checkbox | 复选框 |
| select | 单选 |
| multi_select | 多选 |
| date | 日期 |
| url | 链接 |
| 邮箱 | |
| phone_number | 电话 |
使用场景
- 知识库管理
- 任务跟踪
- 笔记整理
- 项目管理