郵便専門ネットでは、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()
Home