【Notion教程】使用notion构建个人财务管理系统

文摘   2024-11-22 19:59   陕西  

今天咱们来聊聊一个很多人可能都面临过的问题——个人财务管理。尤其是对于我们这些已经完全依赖手机支付的年轻人来说,手机里满满的消费记录,怎么看都觉得应该理清楚点。

问题是,支付宝和微信这两个“支付大佬”互不搭界,数据也没法直接对接。这也就导致了一个尴尬的局面:即使我们已经有了海量的消费数据,却难以便捷地对这些数据进行管理和分析。难道我们要一条一条地手动记录和分析这些账单吗?显然,时代已经不允许我们这么做了。

那么,如何有效地管理这些财务数据呢?今天,我想通过一个简单的Python实现,带大家将支付宝和微信的账单数据导入到Notion,这样你就能把所有的数据都集中管理,方便后续分析。

Notion不仅仅是个笔记工具,它还可以用来构建个人财务管理系统。它的优点就在于,可以将来自不同来源的数据整合到一起,进行统一管理和可视化分析,甚至还可以自动化导入,省去了手动录入的麻烦。

1. 获取财务数据

1.1 获取支付宝账单

支付宝的账单下载其实挺简单的,只要登录支付宝,点击“交易记录”就可以看到相关的账单。

然后选择需要的日期范围,下载Excel格式的账单,得到的文件一般是CSV格式的。打开CSV,你会看到一大堆信息,别担心,我们的目标是提取我们需要的部分。

1.2 获取微信账单

微信的账单获取稍微复杂一点。你得打开微信,进入“服务”菜单,点击“钱包”,然后在右上角找到账单,下载账单。这时微信会要求你填写邮箱,账单会通过邮件发送给你,邮件里附带的压缩包密码则通过微信通知发送。下载后,解压得到的文件是CSV格式,同样也可以进行分析。

2. 获取Notion的API秘钥

2.1 获取秘钥

为了将数据导入Notion,我们需要通过API与Notion进行交互。首先,访问Notion Developers,登录你的Notion账号,并创建一个新的Integration,填写好名称后提交。

2.2 关联页面

在Notion里,找到你想要导入数据的数据库页面,确保你的页面和API进行了关联。这样,你的数据就可以顺利地流入Notion的数据库。

2.3 创建数据库

为了方便存储和管理账单数据,最好按照我提供的模板来创建数据库。模板会包含像“交易时间”、“金额”、“交易对方”、“交易方式”等字段,方便后续分析。

3. 代码编写

3.1 导入Python库

在Python中,我们需要用到pandasrequests库。pandas是用来处理数据的,而requests则是用来与Notion API交互的。

import pandas as pd
import requests

3.2 删除干扰数据

由于账单数据中可能有很多不需要的信息(例如退款记录等),我们要进行数据清洗。下面是清洗支付宝账单的代码:

def alipay_method(path):
    alipay = pd.read_csv(path, encoding='gbk')
    alipay = alipay.iloc[:, [87921011]]  # 只取需要的列
    alipay.columns = ['name''company''money''time''status''method']
    alipay['time'] = pd.to_datetime(alipay['time'])
    alipay = alipay.replace(' ''', regex=True)
    alipay = alipay.loc[alipay['method'].isin(['交易成功''等待确认收货'])]
    alipay = alipay.loc[alipay['status'].isin(['支出''收入'])]
    alipay['method'] = '支付宝'
    alipay['time'] = alipay['time'].dt.strftime('%Y-%m-%dT%H:%M:%S')
    return alipay

同样,对于微信账单,我们也可以进行类似的清洗操作:

def weixing_method(path):
    weixing = pd.read_csv(path)
    weixing = weixing.iloc[:, [325047]]  # 只取需要的列
    weixing.columns = ['name''company''money''time''status''method']
    weixing['time'] = pd.to_datetime(weixing['time'])
    weixing = weixing.replace(' ''', regex=True)
    weixing = weixing.loc[weixing['status'].isin(['支出''收入'])]
    weixing['money'] = weixing['money'].replace('¥''', regex=True).replace(',''', regex=True).astype('float')
    weixing['method'] = '微信'
    weixing['time'] = weixing['time'].dt.strftime('%Y-%m-%dT%H:%M:%S')
    return weixing

3.3 格式化数据

为了能够向Notion数据库导入数据,我们需要将账单数据格式化为JSON格式。下面是格式化账单数据的代码:

def get_json(name, company, money, time, status, method, database_id='your_database_id'):
    if method == '支付宝':
        color = 'blue'
    else:
        color = 'green'

    if status == '收入':
        color1 = 'green'
    else:
        color1 = 'red'

    pay_json = {
        "parent": {"type""database_id""database_id": database_id},
        "properties": {
            "交易额度": {"type""number""number": money},
            "交易时间": {"type""date""date": {"start": time + ".000+08:00"}},
            "支入支出": {"type""status""status": {"name": status, "color": color1}},
            "交易对方": {"type""rich_text""rich_text": [{"type""text""text": {"content": company}}]},
            "交易方式": {"type""status""status": {"name": method, "color": color}},
            "商品名称": {"type""title""title": [{"type""text""text": {"content": name}}]}
        }
    }
    return pay_json

3.4 向Notion导入数据

将数据成功格式化后,我们就可以通过以下代码将数据发送到Notion数据库:

def send_data(pay):
    error = []
    for i in pay.index:
        name = pay['name'][i]
        company = pay['company'][i]
        money = pay['money'][i]
        time = pay['time'][i]
        status = pay['status'][i]
        method = pay['method'][i]
        json_data = get_json(name, company, money, time, status, method)
        response = requests.post('https://api.notion.com/v1/pages', json=json_data, headers=headers)
        if response.status_code != 200:
            error.append(f"Error in adding {name} to Notion.")
    return error

结语

通过这套方法,你可以轻松将支付宝和微信的账单数据导入到Notion,实现个人财务的自动化管理。

不仅能减少手动输入的错误,还能让你随时随地查看自己的消费状况,帮助你做出更理性的消费决策。这种方法简单、高效,适合现代忙碌的程序员,毕竟谁不希望自己的财务管理也能像代码一样精准和自动化呢?

-END-


ok,今天先说到这,如果你想更深入的了解Notion,现在只要购买我们的《Notion实操案例课》,便可免费加入「玩转效率笔记」社群,与一群人交流效率提升的经验,实现自我管理的目标。

如果你对Notion有热情,这个课程绝对不容错过!

Notion教程
回复:notion,获取Notion安装包。分享Notion教程,Notion中文社区,Notion AI教程,Notion会员,Notion模板,NotionAI注册,NotionAI申请,NotionAI写作,Notion插件。
 最新文章