Painlessly Parse AU Address

This class parses common forms of australian addresses.

For example, an address could have many forms:

Unit 2 42 Example ST, STANMORE, NSW 2048

2/42 EXAMPLE ST, STANMORE NSW 2048

U2 42-44 EXAMPLE STEET, STANMORE, NSW 2048

2/42 EXAMPLE STEET, STANMORE, NSW 2048

2/42-44 Example Street, Stanmore, NSW 2048

Installation

>>> pip3 install au-address-parser

Quickstart

class au_address_parser.AbAddressUtility(addr_string)
Parameters:addr_string – address string to parse.
>>> from au_address_parser import AbAddressUtility
>>> addr = AbAddressUtility('U2 42-44 Example St, STANMORE, NSW 2048')
>>> addr
<AbAddressUtility(addr_string='U2 42-44 Example St, STANMORE, NSW 2048')>

This class can parse all forms above, and other common forms and assemble different forms as needed.

Most importantly, it provides a standardised address, this is useful when processing multiple data scources with different address forms.

It can be used to standardise addresses, split addresses into parts, or assemble parts into different forms of addresses.

Variables:
  • addr_string

    The string originally passed to the instance on creation.

    >>> addr.addr_string
    'Unit 2 42-44 Example St, STANMORE, NSW 2048'
    
  • address_abbr

    Full address but abbreviation of street type.

    >>> addr.address_abbr
    '2/42-44 EXAMPLE ST, STANMORE NSW 2048'
    
  • std_address

    Standardised address.

    >>> addr.std_address
    '2/42 EXAMPLE ST, STANMORE NSW 2048'
    
  • address

    User friendly full address.

    >>> addr.address
    '2/42-44 Example Street, Stanmore NSW 2048'
    
  • parsed_addr

    Break address into parts and return a dict.

    >>> addr.parsed_addr
    {'flat_number_prefix': None,
    'flat_number': '2',
    'flat_number_suffix': None,
    'number_first_prefix': None,
    'number_first': '42',
    'number_first_suffix': None,
    'number_last_prefix': None,
    'number_last': '44',
    'number_last_suffix': None,
    'street_name': 'EXAMPLE',
    'street_type_abbr': 'ST',
    'street_type': 'STREET',
    'street_suffix': None,
    'street_suffix_abbr': None,
    'locality': 'STANMORE',
    'state': 'NSW',
    'post': '2048'}
    
  • prop_id

    MD5 value for the standardised address.

    >>> addr.prop_id
    'b8b3b969b70b290b44900e070fcf4b37'
    
classmethod from_gnaf_dict(**kwags)

Create an AbAddressUtility class from a dict containing GNAF information.

Params kwags:a dict from GNAF format.
>>> gnaf = {'flat_number_prefix': None,
            'flat_number': '2',
            'flat_number_suffix': None,
            'number_first_prefix': None,
            'number_first': '42',
            'number_first_suffix': None,
            'number_last_prefix': None,
            'number_last': '44',
            'number_last_suffix': None,
            'street_name': 'EXAMPLE',
            'street_type_abbr': 'ST',
            'street_type': 'STREET',
            'street_suffix': None,
            'street_suffix_abbr': None,
            'locality_name': 'STANMORE',
            'state_abbreviation': 'NSW',
            'postcode': '2048'}
>>> addr = AbAddressUtility.from_gnaf_dict(**gnaf)
>>> addr
<AbAddressUtility(addr_string='2/42-44 Example  , Stanmore NSW 2048')>