zaim_io_toolは、Zaimに登録している家計簿をCSV形式でアップロードおよびダウンロードできるツールです。
ZaimのWebサイト上での以下の操作を、Pythonを使ってコマンドラインから実行できます。
- ZaimのWebサイトにログイン
- 「ファイル入出力」のページに移動
- 家計簿のデータをCSV形式でアップロードまたはダウンロード
- OS
- Linux
- 動作確認OSはUbuntu 20.04のみ
- ※WindowsとMacでの動作は未確認
- Linux
- ツール
- Python3
- 3.9.7でのみ動作確認
- pip3
- Pythonパッケージをインストールするのに必要
- Python3
以下のコマンドで、ツールを動かすのに必要なパッケージをインストールします。
pip3 install -r requirements.txt
.env.sample
を.env
という名前でコピーします。
以下の2つの環境変数を、お使いのアカウントのユーザ名とパスワードに変更します。
ZAIM_USERNAME="your-email@example.com"
ZAIM_PASSWORD="password"
↓ 変更例
ZAIM_USERNAME="your-true-email@example.com"
ZAIM_PASSWORD="01234567"
$ python3 download.py -h
usage: download.py [-h] [-o OUTPUT] [-e ENV_FILE] [-c CHARSET] year month
ZaimのWebサイトから指定した月の家計簿をダウンロード
positional arguments:
year 取得年
month 取得月
optional arguments:
-h, --help show this help message and exit
-o OUTPUT, --output OUTPUT
出力ファイル名を指定(デフォルト output.csv)
-e ENV_FILE, --env-file ENV_FILE
.envファイル名指定(デフォルト .env)
-c CHARSET, --charset CHARSET
文字コード指定(utf8(default)またはsjis)
2024年1月の家計簿をダウンロードする例です。
python3 download.py 2024 1 -o ./csvoutput/202401.csv
Trying to login...
Downloading csv file...
Saved as ./csvoutput/202401.csv.
- 現時点では月単位でしかcsvファイルをダウンロードできません。
- 無料会員でダウンロードする場合
- 以下の項目が取得できず、代わりに全て"(プレミアム会員で表示)"という文字列が表示されてしまいます。
- 通貨, 振替, 残高調整, 通貨変換前の金額, 集計の設定
- 「支出」「収入」「振替」のうち、「振替」のデータはダウンロードできないようです。
- 以下の項目が取得できず、代わりに全て"(プレミアム会員で表示)"という文字列が表示されてしまいます。
$ python3 upload.py -h
usage: upload.py [-h] [-e ENV_FILE] input
ZaimのWebサイト経由で家計簿のcsvファイルをアップロード
positional arguments:
input 入力ファイル名を指定
optional arguments:
-h, --help show this help message and exit
-e ENV_FILE, --env-file ENV_FILE
.envファイル名指定(デフォルト .env)
python3 upload.py csvinput/input-20240118.csv
Trying to login...
Uploading csv file...
Upload of csv file completed.
- アップロード用のcsvファイルが必要です。csvファイルのデータはZaimのフォーマットになっている必要があります。データーフォマットが具体的にどのようなものかは、csvinput/sample.csvやZaimのWebサイトからダウンロードしたcsvファイルの内容をご確認ください。
- アップロード用のcsvファイルの文字コードはUTF-8の必要があります。Shift_JISコード等での動作は未確認です。
- csvinput/sample.csvを指定することでアップロードの動作確認が可能ですが、架空の口座情報(楽天カード XXXX-XXXX-XXXX-XXXX等)が追加されてしまう点にご注意ください。尚、追加された口座情報の削除はできませんが、非表示にすることは可能です。
- 無料会員でアップロードする場合
- 「カテゴリ」や「カテゴリの内訳」の列にZaimに登録されていないものが含まれるとアップロードに失敗します(Zaimサイトの参考情報)
- ↑アップロードに失敗した場合でも、スクリプトは現状正常に処理が終了してしまいます。お手数ですがWebサイトやZaimのアプリで正常にアップロードできているかをご確認ください。
- 「カテゴリ」や「カテゴリの内訳」の列にZaimに登録されていないものが含まれるとアップロードに失敗します(Zaimサイトの参考情報)
showchan33
"zaim_io_tool" is under GPL license.