編注: 本文是「 」共創賽道的入圍文章。文章代表作者個人觀點,少數派僅對標題和排版略作修改。
▍前情提要 & 引子
在之前的文章中「自我記錄、量化與回溯的數字之旅」,我提到了在用過一段時間的記賬類 App 之后,逐步轉變為以支付寶為主要支付手段,通過查看支付寶賬單來對個人支出行為進行分析。
漸漸地,我轉變思路,嘗試將生活中大部分消費通過支付寶完成,然后通過支付寶的賬單看每個月的支出金額和種類,這個策略足夠簡單和有效,而且確實做到了高度自動化,目前還在堅持。 不過由于無法避免微信支付的使用以及通過銀行卡的一些消費,支付寶的賬單分析仍無法做到對個人消費記錄的完全覆蓋。
然而,支付寶的產品經理仿佛有種魔力,你覺得好用的功能,他總喜歡改來改去。在 2025 年初這個時間節點,當你點開「支付寶-設置-賬單-收支分析」時,你會看到在最顯眼的上方跳動著一些奇怪的東西,明晃晃地寫著「日常貼紙待領取」。我實在不知道這類貼紙的受眾在哪里,甚至我用瑞幸 App 點咖啡的時候我還挺喜歡勛章系統,但是對于支付寶的貼紙,我卻一點提不起興趣(插個眼,萬一以后打臉真香了)。
支付寶賬單的貼紙頁面
當然,你也可以點擊右上角回到舊版賬單,但是平心而論,新版的賬單還更新了不少實用的功能,包括:
月支出對比,即相對于上月變化了多少
日支出的日歷顯示(但是很遺憾并沒有做成顏色熱力圖)
大額消費集中展示
年度支出排行
月度分析-月度小結與日歷視圖
月度分析-支出分類與細分種類
年度分析-支出分類、支出對比、支出排行
甚至針對交通出行、餐飲美食等還做了更細致的自動分類,但并不是每筆都準確,如果你關注這個,最好每筆都確認一下。然而,我在使用過程中逐漸覺得支付寶自帶的賬單還是有點沒達到預期,對于我的消費行為不能做到更精準的分析和解讀,以及切換年份月份時,實在是有點繁瑣。
剛巧最近 AI 編程非?;?,我從去年 11 月開始種草并開始使用 cursor,已經有了一些搭建小項目的經驗。既然支付寶的賬單展示我不滿意,那不如我自己來,把它做成我喜歡的樣子。
▍開干 - 賬單導出與結構解析
既然選擇自己干,那首先需要拿到原始數據,這點支付寶做的還是不錯的,賬單界面右上角點擊可以開具交易流水證明,選擇用于個人對賬,再選擇交易流水的范圍(最長可選 1 年,因此建議按年導出),點擊下一步,輸入郵箱,便可以將 csv 文件發送到個人郵箱。同時,郵件附件壓縮文件下載后,要再回到開具記錄里面查看解壓密碼,防止發錯郵箱造成的個人信息泄漏。
如何獲取支付寶賬單
解壓后便得到一個 csv 文件,我建議按年份命名為「alipay_record_2024.csv」格式,到這一步,恭喜你已完成所有前置準備工作。打開csv文件,除了最上面的表頭部分,下方的表格信息包括:交易時間、交易分類、交易對方、對方賬號、商品說明、收/支出、金額、收/付款方式、交易狀態、交易訂單號、商家訂單號、備注。
賬單原始文件格式
這些信息足夠詳細,接下來就是通過工具來處理和展示賬單內容。由于我并非程序員出身,之前只在學校用過 MATLAB 處理實驗數據,所以我選擇使用簡單的 Python 與 Flask 來搭建網頁前端?;镜倪壿嬍牵ㄟ^一個 Python 腳本持續運行,讀取本地 csv 文件,進行數據切分和篩選,并將分析結果在網頁上展示。
編程方面的工作我不詳細展開,因為我基本上也沒寫一句代碼,全程使用 cursor composer 搭配 claude-3.5-sonnet 進行代碼生成與修改,主打一個用談話的方式進行編程。期間由于自己編程經驗的不熟悉,以及技術棧選擇的不到位,繞了一些彎路,或者是和 composer 一直反復修改某個功能卻還是失敗。
好在花了幾天時間,勉強拼湊出一個半成品,也嘗試部署到 pythonanywhere 以供各位體驗。那么接下來,各位,讓我介紹一下這款自制的支付寶賬單分析工具。
▍界面簡介
https://hessel.pythonanywhere.com/
登錄網站「支付寶賬單分析」,網頁主要由左側導航欄以及右側主界面組成。導航欄分為首頁、年度總覽、月度分析、分類分析、時間分析、消費洞察、交易記錄以及設置,點擊導航欄按鈕會跳轉到各頁面,左下角有一個篩選菜單,用于篩選全部交易、僅大額交易、僅小額交易。網站整體 UI 參照 Apple Design 的風格,圖表部分基于 Apache ECharts 進行搭建,鼠標置于圖表具體區域都可展示對應元素的懸浮信息,交互性尚可。
首頁有簡單的功能介紹,下方可點擊上傳賬單文件。點擊后會跳轉到設置界面,可以進行文件的上傳和管理。
網站首頁
設置界面包含了如何獲取支付寶賬單的說明,點擊上傳文件按鈕選擇 csv 文件即可,支持多個文件上傳。數據方面,默認會話時長 30 分鐘,計時結束后自動刪除緩存與各項數據,也可點擊下方按鈕手動進行刪除。如果對數據安全有疑慮,還可以將項目克隆到本地運行,代碼已上傳到 GitHub(alipay_record_analysis),記得給個 star。
設置-文件管理界面
年度總覽 & 月度分析
文件上傳成功后,點擊「年度總覽」頁面,就能看到按年統計的收支信息以及按月份排列的趨勢圖。上方有一個年份選擇器,點擊左右按鈕可以切換不同的年份。統計信息展示了年度收入與支出、交易筆數以及與前一年的對比。下方則是支出趨勢圖和支出分類情況,直觀地展示了支出的變化。趨勢圖的右上角有一個支出/收入切換按鈕,點擊后趨勢圖和下方餅圖會進行切換。
年度總覽-概況&支出趨勢
年度總覽-支出分類
「月度分析」頁面的功能與年度總覽類似,不過時間單位變成了月份。支出趨勢則按天展示。通過這些頁面,可以輕松看到每年、每月甚至每天的支出變化情況,以及支出類別占比。當然這只是最淺顯的數據展示,為了洞悉自己的消費行為,我們還需要更進一步。
月度分析-概況&支出趨勢
月度分析-支出分類
彈窗交互
傳統的賬單分析工具往往交互性不夠強,這也是我覺得支付寶賬單分析不夠理想的原因之一。既然是自建的工具,我便希望按我的使用習慣加強交互性。在此,我引入了第一個全局交互,彈窗表格。具體來說,我們可以在任何圖表界面的元素上(例如趨勢圖的柱狀條、餅圖的扇區、熱力圖的格子等)點擊,彈出詳細的交易信息。
例如,在 2023 年的每月支出趨勢中,我發現某個月支出異常高,便可點擊柱子區域,展開彈窗,便可看到當月的所有支出明細,點擊彈窗的右上角可選擇按支出或按金額排列,便可看到當月支出最大的幾筆消費。這個功能可以快速展開圖標的詳細信息,方便回顧消費狀況。
彈窗展示支出明細
篩選交互
而第二個全局交互,是左下角的懸浮菜單,可用于篩選大額和小額交易(以 1000 元為分割線)。點擊后,網站上的所有數據和圖表都只會顯示篩選后的結果。例如:
在彈窗界面,我點擊「僅大額交易」后,就只會顯示超過 1000 元的交易。
在年度、月度包括后續的各個界面,點擊「僅小額交易」,統計信息、支出趨勢以及支出分類中,都只會包含金額小于 1000 元的交易的信息,方便查看小額交易的情況。
這是因為大額交易往往是不定期的,會破壞一定程度上的趨勢走向和分類占比,通過這個篩選菜單可以將大額和小額交易分離開,方便我從兩個維度對我的消費行為進行分析。
彈窗中篩選顯示-僅大額交易
如下圖通過篩選 2023 年的僅小額交易,基本可以看到每個月的基本生活開支,處于比較穩定的位置,2 月與 3 月處于過年期間,各類開支不高,而 8 月的消費增加則是由于出門旅行。
年度頁面篩選顯示-僅小額交易
總之,有了彈窗和篩選這兩個交互,我可以在任意界面元素點開我感興趣的內容,并分離大額和小額交易來進行分析,這帶來的體驗和功能提升讓我回顧數據和分析消費行為的效率大大增加。
分類分析
通常分析賬單,我會關注兩件事:
吃的等必要消費花了多少
數碼產品等額外消費花了多少
而這里就要說到,支付寶的賬單相比于微信賬單的兩個優勢,一個是單次導出范圍可以選擇一年,而微信只有 3 個月。第二個便是支付寶導出的賬單包含了分類相關的信息(來自支付寶的自動分類,也可以自己在 App 中手動更改),而微信只有交易類型的信息(如商戶消費、轉賬、二維碼付款),參考價值不大。
因此,針對支付寶的分類信息,我制作了「分類分析」頁面,這個頁面主要實現針對分類的各類分析。首頁最上方為分類卡片,鼠標移到分類卡片上便會彈出所有分類以供選擇,默認展示餐飲美食分類。
選擇分類界面
該頁面下的數據均來自于卡片中選頂的分類,以餐飲美食為例,上方與年度頁面類似,顯示一些支出概況,包括支出金額,占比,月均支出和消費頻率。下方則是支出趨勢圖,顯示每月支出金額的變化,以及在該月的占比變化(某種意義上的恩格爾系數),這個曲線可以反映我日常飲食開銷狀態。
分類分析-餐飲美食-年視圖
分類分析頁面上方有年份選擇器,以及右側有時間范圍切換按鈕,可以切換顯示「所有/年度/月度」。切換到月度界面則是會顯示日趨勢圖,如此,某天是下的小館子還是吃的餐廳便一目了然。
分類分析-餐飲美食-月視圖
分類分析頁面往下拉,還有一個消費規律分析圖,展示的是當前時間范圍下分布在全天 24 個小時內的整體消費數據,比如你可以看到我是個早餐基本不花錢(不吃或家里吃),午餐錢花的不多,但是出去吃是挺多的,晚餐則是聚餐的重災區。當然這更像是當代打工人代表。
餐飲-消費規律-2024
這個時候倘若我往前翻一下,便可以看到學生時代的我(2019 年)明顯更舍得在午餐上花錢。
餐飲-消費規律-2019
再往下翻,則是金額的分布圖,可以明顯看到 0-50 元之間的消費,占據了我餐飲的大部分,超過 500 的則是極少數。這明顯也是社畜代表性特征,這意味著即使參加好朋友飯局,我可能也不是付錢的那位,而是事后默默支付群收款。(當然,也可能餐飲相關的支出一部分在微信里,導致信息展示不完全)
餐飲-金額分布
當然,如果你對某個時間或金額內的具體支出行為感興趣,也可以點擊彈窗展開交易明細,明細就僅包含了當前時間或當前金額范圍內的交易。如下圖,就展示了 0-50 內的餐飲美食交易。
餐飲美食 0-50 元交易明細
說完餐飲美食,我另一個關注的分類便是數碼電器,因為大額的剁手很可能都在這個分類中。切換到數碼電器后,趨勢圖中基本可以看到我在哪幾個月買了數碼設備,對某個月的支出感到奇怪,便直接點柱子查看詳細內容,具體詳情便不再贅述。
分類分析-數碼電器
時間分析
在「時間分析」頁面,我添加了類 GitHub 風格的熱力圖,展示一年的支出行為變化,右上角可點擊切換支出金額/收入金額/交易筆數。當然,點擊任意格子,也可以彈窗顯示當日消費詳情。下方為日內時段分布,與分類分析頁面類似,只不過以年為單位包含所有消費。
支出日歷熱圖以及消費時段分布
最下方為「工作日/周末」的消費分布,可以粗略地看到各個分類在工作日以及周日消費的占比。例如,服飾裝扮、美容美發類消費通常集中在周末,而餐飲則在平時和周末都有較大支出。
工作日/周末分布
消費洞察
接下來做了一個探索性的「消費洞察」頁面,核心是依據消費的分類、時間、商家等規律,為用戶展現一個消費者畫像。不過目前只做了少數的功能,包括消費畫像、最常光顧、消費場景、消費習慣等,還沒有特別好的想法或者理好頁面的核心邏輯,暫時先放著玩玩。
交易記錄
最后一個分析類頁面是交易記錄,里面其實就是 csv 表格內容在網頁端的展示,雖然目前該頁面的篩選和搜索功能尚未完成,但基本的展示功能已經可以滿足初步查看原始交易記錄的需求。
交易記錄頁面
▍小結
這個項目從一開始的「一廂情愿」「自娛自樂」,到「覺得做得還可以」「有了一絲分享欲」,再到「做個網頁 demo 好麻煩啊」「UI 細節的優化真的磨人」,最后「和自己和解」,「勉強接受目前的不足」,「先讓項目核心組件運行起來」。最終在開始的一周之后,跟著文章一起捧到了大家面前。
我不是一個職業的程序員,也完全不以程序開發為主業,甚至這個項目還是我 github 上第一個上傳的公開項目,就在今天晚上我還在問 ChatGPT GIT到底怎么用。項目初期的開發異常順利,然而各種需求沒有在一開始就整理好,因此留下了許多屎山代碼,到后面改動一個小功能可能就要改動整個邏輯或接口,因此反而拖慢了很多進度。
然而過程或許略顯枯燥,偶爾甚至有些痛苦,但是每次我把更新后的 demo 發給朋友去體驗,那種興奮確實無與倫比的。
回到賬單分析這個話題上,我在做這個工具的時候無數次問自己,這樣子有用嗎,跟我抱有一樣理念的人有幾個呢,又有幾個愿意如此麻煩地下載支付寶賬單文件來體驗一下呢?我分析的理念對嗎,又或是我真的相比官方實用多少呢?這些都不得而知,但是我心中可能已經有了答案。
賬單不只是消費的記錄,也是我生活的記錄。
使用的過程中,我經常驚喜或驚訝地發現,某年某月某日,我竟然干了某件事,然而我卻早已忘得一干二凈。在馬上要步入而立之年的年紀,生活經常就是三點一線的日常,紛擾的信息、爆炸的新聞無不在吸引我的眼球,消耗我為數不多的記憶力,占據著我的腦子。5年前的今天,我在干嘛呢,喝了杯奶茶,還是看了場演唱會,或許賬單能幫我找到答案,也或許找回一絲年少的記憶。
未完待續
項目整體堪堪可用,不足之處略多,如若各位感興趣,請多提意見,謝謝!為了滿足自己奇怪的偏好,應該還會對工具持續進行更新。
https://sspai.com/post/96151?utm_source=wechat&utm_medium=social
作者:Hessel
責編:Lotta
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.