XML-RPCで郵便番号から住所を取得するPythonスクリプト

郵便専門ネットでは、2002年11月からXML-RPCのAPIを公開しています。

Delphi5版とPHP版クライアントのサンプルを当初から用意しています。自分の練習を兼ねて、Python版のサンプルを作ってみました。えらい簡単。

Python2.4以降以外に必要なものはありません。string.Templateを使わなければPython2.2以降でも動くはず。スクリプトの大部分は出力を整形するテンプレートです。最新版はgist:227575に置いてあります。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""yurpc2.py
XML-RPCで郵便番号から住所を取得するPythonスクリプト
"""
import sys
import string
import xmlrpclib

tmpl = {}

#住所用のテンプレート
tmpl['p'] = string.Template("""
$postcode $jiscode $pref $city $town $pref_kana $city_kana $town_kana
""") #事業所用のテンプレート tmpl['j'] = string.Template("""
$postcode $jiscode $addr_name $addr_name_kana $pref $city $town $other
""") def fetch_addr(postcode): server = xmlrpclib.ServerProxy("http://yubin.senmon.net/service/xmlrpc/") try: r = server.yubin.fetchAddressByPostcode(postcode) for addr in r: return tmpl[addr['data_type']].substitute(addr) except xmlrpclib.Fault, fault: return "Fault [#%s %s] postcode = %s" % (fault.faultCode, fault.faultString, postcode) def run_test(): for p in ('1378088', '1140011'): print fetch_addr(p) if __name__=='__main__': if len(sys.argv)>1: print fetch_addr(sys.argv[1]) else: run_test()

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>