Python改造街道类型的缩写?

时间:2017-04-05 15:20:07

标签: python street-address

我正在处理地址匹配,例如123 Main St. Suite 100 Chicago, IL123 Main Street Chicago, IL。一个重要问题是转换街道类型的缩写,例如St.Street。我想知道是否有任何Python包处理它,因为它似乎是处理地址的一个非常常见的问题。

PS,我知道usaddress,但它只解析所有部分,不进行任何转换。

1 个答案:

答案 0 :(得分:2)

您可以使用地址和usaddress转换为缩写,后跟句点。我使用了usaddress,因为我知道它会解析诸如123 S North Dr.这样的地址这是我所做的一部分:

import usaddress
from address import AddressParser, Address
addr = usaddress.parse(address_line1)
ad = AddressParser()
addr2 = ad.parse_address(address_line1)
#perform some cleanup and functions on addr...
if addr2.street_suffix:
    post = addr2.street_suffix
else:
    post = ''

Here is the documentation on the address 0.1.1 module

更新:地址在Python 3.x中不起作用,因为没有()的打印功能。还有另一个模块,街道地址documentation here,其格式和解析地址的工作方式类似,但我发现usaddress已足够。

例如,

    parser_address = "6400 S FIDDLERS GREEN CIR SUIT 123"
    addr = usaddress.parse(parser_address)

返回:

     [('6400', 'AddressNumber'), ('S', 'StreetNamePreDirectional'), ('FIDDLERS', 'StreetName'), ('GREEN', 'StreetName'), ('CIR', 'StreetNamePostType'), ('SUIT', 'OccupancyType'), ('123', 'OccupancyIdentifier')]