挖财数据导入 Beancount
本脚本实现了解析挖财导出文件并转换为 Beancount 账本的功能。基本保留了挖财导出文件的全部内容细节。
功能:
- 一次性处理收入、支出、转账、借贷往来全部记录
- 时间信息以 Transaction 的 metadata 形式保留(例如
time: "11:22:33") - 成员消费以 Posting 的 metadata 形式保留(例如
member: "阿猫") - 账本信息以 tags 的形式保留
- 项目信息以 tags 的形式保留
- 报销记录以 links 的形式保留(统一为
Reimburse),记录为与指定账户(account_reimburse参数)的转账,同时保留原始消费类别(添加总额为 0 的 Posting)以便查询 - 借贷往来统一记录到两个账户中(
account_debt与account_credit参数),以payee区分外部账户或人员 - 借贷往来中增加利息支出 Posting,记录到统一账户(
expenses_interest参数)中 - 为无备注的借贷与转账自动添加备注
TODO:
- 转换余额调整记录为 pad & balance 语句(暂无可用的数据来源)
- 借款项支持非 CNY 的货币(挖财中无相关记录的货币信息)
- 多人账本(目前没有参考文件格式)
- 增加利息收入记录到统一账户的配置参数
已知的问题与说明:
- 挖财中,跨在不同币种账户间转账(如:人民币还信用卡美元欠款)的记录不准确,目前统一以转出账户的货币为准。需要手动确认 Beancount 记录(已经打
!Flag),比如一张双币信用卡的主货币是正的,而其他货币是负的。 - 挖财中的
项目一般为中文,而 Beancount 不支持中文 tag,目前已转换为拼音(如:公司->gong1-si1),如有修改需要请使用批量替换工具处理。 - 挖财导出文件中不包含余额调整信息,导入后各账户的余额不准确需要手动对账一次;历史余额准确度取决于在挖财中是否事无巨细全部记录。
使用方式
安装
pip3 install beancount-wacai
配置
请参考 example.bean 中的内容,预先开一些常用账户。然后参考 example.import 配置 .import 文件:
from beancount_wacai import WacaiImporter
CONFIG = [
WacaiImporter(
{
'招商卡': 'Assets:CN:CMB',
'招商卡信用卡': 'Liabilities:CN:CMB',
# ...
},
{
'工资薪水': 'Income:Salary',
'其他': 'Income:Other',
# ...
}, {
'衣服鞋帽': 'Expenses:Shopping:Clothing',
'软件服务': 'Expenses:Shopping:Software',
# ...
},
account_debt='Liabilities:Payable',#债权
account_credit='Assets:Receivables',#债务
account_reimburse='Assets:Reimburse',#报销
account_ufo='Equity:Opening-Balances',
)
]
### 导出挖财
在挖财网页版中,导出各个账本(导出为收费功能,最便宜的档位是 50 元季度会员)。解压后获得 .xlsx文件。验证脚本是否能处理这些文件:
# 假设文件都位于相对目录 wacai_example_file 中
bean-identify example.import wacai_example_file
将输出:
**** wacai_example_file\wacai_日常账本_202101011200001_123.xlsx
Importer: wacai
Account: None
导入
如无问题,可继续执行 bean-extract
bean-extract example.import wacai_example_file\wacai_日常账本_202101011200001_123.xlsx > result.bean
#或
bean-extract example.import wacai_example_file > result.bean
执行过程中,会输出未识别的账户,例如:
Unknown accounts:
Assets:Unknown:北京银行卡
Assets:Unknown:招商信用卡-美元
Assets:Unknown:招商信用卡
Assets:Unknown:交行信用卡
Income:Unknown:利息
Expenses:Unknown:手机电话
Expenses:Unknown:数码产品
Expenses:Unknown:购物其他
Expenses:Unknown:对帐
Expenses:Unknown:代付款
Expenses:Unknown:求医买药
Expenses:Unknown:花鸟宠物
可据此手动在主账本中,使用 open 补齐这些账户,如有修改需要请使用批量替换工具处理。输出结果可参考 result.bean。
最后在主账本中引入:
include "result.bean"
注意 在 Windows CMD 中,最终输出的文件可能是 GBK 编码,这将需要你手动转换文件编码。
Metadata
Release files for beancount-wacai 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| beancount-wacai-0.1.2.tar.gz | 7.0 kB | Details |
Release files / beancount-wacai-0.1.2.tar.gz
| Download URL | beancount-wacai-0.1.2.tar.gz |
|---|---|
| Size | 7.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c297fca18c4361bccc0554960b16f9678ee1c7061ec5d0d958d497f2e1fd72ce
|
|
BLAKE2b-256 checksum How to use checksums |
08a87786253d678c0176bc20a09e1c79ee1bed4caceb57333ae62f50c27900c3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.24.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.5
|