当前位置: 主页 > 日志 > Webscraping >

如何解析美国地址

 来源:鲲鹏数据 

http://www.site-digger.com/html/articles/20110604/13.html

 

项目中经常需要将完整的美国地址(例如,6200 20th Street, Vero Beach, FL 32966)进行细分:

address: 6200 20th Street

City:  Vero Beach

State: FL

Zip code:32966

下面给出一个函数,使用前需要导入re模块:

def parse_us_address(address):
    addrs = map(lambda x:x.strip(), address.split(','))
    if addrs:
        m = re.compile('(\w+)\s*(.*)').search(addrs[-1])
        if m:
            state, zipcode = m.groups()[0].strip(), m.groups()[1].strip()
 
        if len(addrs)>=3:
            city = addrs[-2].strip()
            address = ','.join(addrs[:-2])
        else:
            address = ','.join(addrs[:-1])
            
    return address, city, state, zipcode  
 
调用示例:
>>> parse_us_address('6200 20th Street, Vero Beach, FL 32966')
('6200 20th Street', 'Vero Beach', 'FL', '32966')

[日志信息]

该日志于 2011-06-04 12:12 由 redice 发表在 redice's Blog ,你除了可以发表评论外,还可以转载 “如何解析美国地址” 日志到你的网站或博客,但是请保留源地址及作者信息,谢谢!!    (尊重他人劳动,你我共同努力)
   
验证(必填):   点击我更换验证码

redice's Blog  is powered by DedeCms |  Theme by Monkeii.Lee |  网站地图 |  本服务器由西安鲲之鹏网络信息技术有限公司友情提供

返回顶部