2021/04/06

[Python]銀行コードと支店コードの取扱

python

概要

ユーザーに自分の銀行口座を入力してもらう際に、データに誤りがないようにする必要が有ります。

その際に銀行コードや支店コードを入力してもらい入力チェックを行うのが良さそうです。

入力した銀行コードや支店コードを元に、銀行名や支店名を表示したり、またその逆で
銀行名、支店名から銀行コードや支店コードを取得できるようにしたいなと思い、APIを調査していたところzengin-code/source-dataを見つけました。

MITライセンスな日本の銀行コードのデータをまとめてくれているリポジトリです。
こちらを元に、pythonで便利に使えるようにしたライブラリ「zengin-py」も有りました。

こちらを利用させていただきました。

使い方

インストール

% poetry add zengin_code
# または
# pip install zengin_code

全ての銀行コードを取得

from zengin_code import Bank
for code in Bank.all:
    bank = Bank[code]
    # 銀行コードと銀行名を出力
    print({
        "code": code,
        "name": bank.name,
    })

特定の銀行コードの支店コードを取得

from zengin_code import Bank

code = "0001"  # みずほ銀行

bank: Bank = Bank[bank_code]
if bank:
    branches = bank.branches
    for code in branches:
        branch = branches[code]
        # 支店コードと支店名を出力
        print({
            "code": code,
            "name": branch.name,
        })

上記をうまく活用しつつ、ユーザーがコードや名前でうまく検索・入力できるようにしました。(autocomplete的なUI Componentのinputにしました。)

注意点

  • ライブラリとして含めると、変更に対処できないため、定期的にチェックして変更があった場合に対処する必要があります。
    • githubのraw dataを定期的に取り込んだりすると良いかもしれません。
% curl https://raw.githubusercontent.com/zengin-code/source-data/master/data/banks.json

以上です。