使用 notion-py 自动化 Notion
2023 年 10 月 25 日

tomating Notion using notion-py - Analytics Vidhya - Medium

我最近开始使用Notion (opens new window),它太棒了!我几乎用它来做所有事情,记笔记、作为费用管理器、计划项目等等。在使用Notion之前,我习惯使用谷歌便签来跟踪我的花费,它大致是这个样子的:

我之前是如何记录花费的

基本上只是一个列举了我的花费、金额、消费地点和日期的简单列表。

Notion提供了一个管理费用的模板,它是这样的:

Notion中的默认费用管理模板

这是一个非常有组织的数据库,带有漂亮的颜色编码类别,但问题是从我旧的混乱文本文件逐个添加条目到这个漂亮的模板是一项非常繁琐的任务。所以在互联网上搜索了一下,我找到了这个很棒的库叫做[notion-py (opens new window)

notion-py是一个免费的自动化Notion的库,它可以帮助我们在Notion中自动化任务。 notion-py是一个可用的库,允许您操作Notion的块和数据库。根据官方网站的说法,它是一个“Notion.so (opens new window) API v3的非官方Python 3客户端”。notion-py的作者还在medium上有一个博客,您可以在这里找到 (opens new window)(我与他们的团队无关,当我搜索Notion的API支持时,偶然发现了这个库)

首先,我需要将数据转换为包含Expense、Cost和Date的三个数组。我用以下代码实现了这个目标:

#打开文件
raw_data = []
with open("Expenses.txt", "r") as f:
    for line in f:
        if (line):
            raw_data.append(line)
#将费用存入一个数组(cost[]),将日期和支出存入第二个数组(data_to_be_formatted)
cost = []
data_to_be_formatted = []
for line in raw_data:
    a,b = line.split(' ', 1)
    cost.append(a)
    data_to_be_f 我意识到这可能不是完成任务的最佳方式,但我仍在学习Python,这个方法有效。如果您有建议,请告诉我! :)

在得到三个数组cost[],expense[],date[]之后,我按照[官方文档](https://pypi.org/project/notion/)中给出的方式进行了notion-py API调用。

以下是代码: 从notion.client导入NotionClient模块# 通过检查Notion上登录会话中的浏览器cookies来获取`token_v2`的值.soclient = NotionClient(token_v2="YOUR_V2_TOKEN_HERE")# 获取你的集合/视图/数据库cv = client.get_collection_view("YOUR_DB_URL_HERE")i=0# 针对每一行获取值for Cost, Expense, Date in zip(cost_numeric, expense, date):    # 添加新行    row = cv.collection.add_row()    # 添加值    row.Expense = Expense    row.Amount = Cost    row.Comment = Date    # 打印进度    print("已完成{}个条目".format(i+1))    i=i+1

注意:我将日期添加到评论中,因为Notion中的日期需要datetime对象,而日期是字符串。我本可以将其转换为datetime,但老实说,我忘了。 :/

获取v2令牌的方法如下:

如何获取token_v2参数

点击它并复制内容部分中的值。

就这样,所有的费用都被迁移到Notion中,几乎没有什么努力。

我还制作了一个Android应用程序来... 添加一条记录,就像之前添加的那样,(作为一个简单的文本字符串),然后将其添加到Notion数据库中。您可以在此处阅读有关此的详细信息:[点击此处](https://medium.com/@prathu10/android-app-for-notion-automation-using-chaquopy-863e72fa4ecd)。希望您觉得这篇文章有帮助。

下次见。干杯!