2021/04/06
[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
以上です。
関連する記事
[Python]ハイフンなし電話番号からハイフン付きに復元
Pythonでハイフンなしの日本の電話番号をハイフン付きのものに変換する
[Python]BeautifulSoup4でhtmlの解析
BeautifulSoup4というPythonのライブラリを使って、特定のURLのコンテンツを取得し、タイトルや説明文を取得できるようにしました。
[Python]銀行コードと支店コードの取扱
Pythonで銀行コード、支店コードデータを取り扱う便利なライブラリzengin-codeを導入しました。
Sendgridを使ってメールの受信を行う
Inbound Email Parse Webhookという機能を利用してメールを受信したらWebhookを呼び出すようにしました