Python改造街道类型的缩写?

问题描述 投票:2回答:1

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

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

python street-address
1个回答
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')]
© www.soinside.com 2019 - 2024. All rights reserved.