Python SDK

Updated at:

This topic describes how to call Address Purification APIs using the Python SDK and provides code examples.

Install the SDK

# Install the Alibaba Cloud SDK core library
pip install aliyun-python-sdk-core

# Install the Address Purification SDK
pip install aliyun-python-sdk-address-purification

Configure environment variables

You can configure a default access credential for the Alibaba Cloud SDK by setting the ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variables. The SDK then automatically reads your AccessKey from these variables to authenticate API calls.

Important

An Alibaba Cloud account AccessKey grants full access to all APIs. For enhanced security, we strongly recommend using a RAM user for API calls and routine O&M to avoid exposing your AccessKey.

Configuration

Configure the ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variables.

  • For Linux and macOS

    Run the following commands:

    export ALIBABA_CLOUD_ACCESS_KEY_ID=<access_key_id>
    export ALIBABA_CLOUD_ACCESS_KEY_SECRET=<access_key_secret>

    Replace <access_key_id> with your AccessKey ID and <access_key_secret> with your AccessKey Secret.

  • For Windows

    1. Create two new environment variables, ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET, and set their values to your AccessKey ID and AccessKey Secret, respectively.

    2. Restart Windows for the changes to take effect.

Address extraction

Sample request

import json
from aliyunsdkaddress_purification.request.v20191118.ExtractAddressRequest import ExtractAddressRequest
from aliyunsdkcore.client import AcsClient


# Test the address extraction service
def extract_address():
    client = AcsClient(
        # For security, we strongly recommend against hard-coding your AccessKey ID and AccessKey Secret in your code.
        # Hard-coding credentials can lead to exposure, compromising all resources in your account.
        # This example reads credentials from environment variables. Make sure you have set them before running this code.
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
        "cn-hangzhou"
    )
    # Build the request
    request = ExtractAddressRequest()
    # Set the service code
    request.set_ServiceCode("addrp")
    # Set the AppKey
    request.set_AppKey("<your-app-key>")
    # Set the text parameter
    request.set_Text("No. 969, Wenyi West Road, Hangzhou City")
    # Set the default province
    request.set_DefaultProvince("Zhejiang Province")
    # Set the default city
    request.set_DefaultCity("Hangzhou City")
    # Set the default district
    request.set_DefaultDistrict("Yuhang District")
    # Send the request
    response = client.do_action_with_exception(request)
    # Process the result
    resp_obj = json.loads(response)
    print(resp_obj['Data'])


if __name__ == '__main__':
    extract_address()

Sample response

{
    "location_extract":[
        {
            "start":0,
            "end":11,
            "type":"LOC",
            "word":"No. 969, Wenyi West Road, Hangzhou City"
        }
    ],
    "status":"OK",
    "time_used":{
        "rt":{
            "location_extract":0.0062503814697265625
        },
        "start":1669169268.4418545
    }
}

Name extraction

Sample request

import json

from aliyunsdkaddress_purification.request.v20191118.ExtractNameRequest import ExtractNameRequest
from aliyunsdkcore.client import AcsClient


# Test the name extraction service
def extract_name():
    client = AcsClient(
        # For security, we strongly recommend against hard-coding your AccessKey ID and AccessKey Secret in your code.
        # Hard-coding credentials can lead to exposure, compromising all resources in your account.
        # This example reads credentials from environment variables. Make sure you have set them before running this code.
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
        "cn-hangzhou"
    )
    # Build the request
    request = ExtractNameRequest()
    # Set the service code
    request.set_ServiceCode("addrp")
    # Set the AppKey
    request.set_AppKey("<your-app-key>")
    # Set the text parameter
    request.set_Text("Zhang San and Li Si arrived at Alibaba Xixi Campus")
    # Set the default province
    request.set_DefaultProvince("Zhejiang Province")
    # Set the default city
    request.set_DefaultCity("Hangzhou City")
    # Set the default district
    request.set_DefaultDistrict("Yuhang District")
    # Send the request
    response = client.do_action_with_exception(request)
    # Process the result
    resp_obj = json.loads(response)
    print(resp_obj['Data'])



if __name__ == '__main__':
    extract_name()

Sample response

{
    "person_extract":[
        {
            "start":0,
            "end":2,
            "type":"PER",
            "word":"Zhang San"
        },
        {
            "start":3,
            "end":5,
            "type":"PER",
            "word":"Li Si"
        }
    ],
    "status":"OK",
    "time_used":{
        "rt":{
            "person_extract":0.006942272186279297
        },
        "start":1669169781.5687082
    }
}

Phone number extraction

Sample request

import json

from aliyunsdkaddress_purification.request.v20191118.ExtractPhoneRequest import ExtractPhoneRequest
from aliyunsdkcore.client import AcsClient


# Test the phone number extraction service
def extract_phone():
    client = AcsClient(
        # For security, we strongly recommend against hard-coding your AccessKey ID and AccessKey Secret in your code.
        # Hard-coding credentials can lead to exposure, compromising all resources in your account.
        # This example reads credentials from environment variables. Make sure you have set them before running this code.
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
        "cn-hangzhou"
    )
    # Build the request
    request = ExtractPhoneRequest()
    # Set the service code
    request.set_ServiceCode("addrp")
    # Set the AppKey
    request.set_AppKey("<your-app-key>")
    # Set the text parameter
    request.set_Text("Zhang San's new mobile number is 18111111111")
    # Set the default province
    request.set_DefaultProvince("Zhejiang Province")
    # Set the default city
    request.set_DefaultCity("Hangzhou City")
    # Set the default district
    request.set_DefaultDistrict("Yuhang District")
    # Send the request
    response = client.do_action_with_exception(request)
    # Process the result
    resp_obj = json.loads(response)
    print(resp_obj['Data'])


if __name__ == '__main__':
    extract_phone()

Sample response

{
    "phone_extract":[
        {
            "start":8,
            "end":19,
            "type":"TEL",
            "word":"18111111111"
        }
    ],
    "status":"OK",
    "time_used":{
        "rt":{
            "phone_extract":0.007189273834228516
        },
        "start":1669169745.738215
    }
}

Administrative division resolution

Sample request

import json

from aliyunsdkaddress_purification.request.v20191118.GetAddressDivisionCodeRequest import GetAddressDivisionCodeRequest
from aliyunsdkcore.client import AcsClient


# Test the administrative division resolution service
def get_address_division_code():
    client = AcsClient(
        # For security, we strongly recommend against hard-coding your AccessKey ID and AccessKey Secret in your code.
        # Hard-coding credentials can lead to exposure, compromising all resources in your account.
        # This example reads credentials from environment variables. Make sure you have set them before running this code.
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
        "cn-hangzhou"
    )
    # Build the request
    request = GetAddressDivisionCodeRequest()
    # Set the service code
    request.set_ServiceCode("addrp")
    # Set the AppKey
    request.set_AppKey("<your-app-key>")
    # Set the text parameter
    request.set_Text("Alibaba Xixi Campus, Yuhang District, Hangzhou")
    # Set the default province
    request.set_DefaultProvince("Zhejiang Province")
    # Set the default city
    request.set_DefaultCity("Hangzhou City")
    # Set the default district
    request.set_DefaultDistrict("Yuhang District")
    # Send the request
    response = client.do_action_with_exception(request)
    # Process the result
    resp_obj = json.loads(response)
    print(resp_obj['Data'])


if __name__ == '__main__':
    get_address_division_code()

Sample response

{
    "division_info":{
        "divcode":"330110000000",
        "division_name":"Zhejiang Province;Hangzhou City;Yuhang District;"
    },
    "status":"OK",
    "time_used":{
        "rt":{
            "basic_chunking":0.01677703857421875,
            "division_info":0.005695819854736328,
            "segment":0.00038433074951171875,
            "address_correct":0.003169536590576172,
            "complete":0.00007987022399902344,
            "structure":0.00007891654968261719
        },
        "start":1669169986.7333252
    }
}

Postal code recognition

Sample request

import json

from aliyunsdkaddress_purification.request.v20191118.GetZipcodeRequest import GetZipcodeRequest
from aliyunsdkcore.client import AcsClient


# Test the postal code recognition service
def get_zip_code():
    client = AcsClient(
        # For security, we strongly recommend against hard-coding your AccessKey ID and AccessKey Secret in your code.
        # Hard-coding credentials can lead to exposure, compromising all resources in your account.
        # This example reads credentials from environment variables. Make sure you have set them before running this code.
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
        "cn-hangzhou"
    )
    # Build the request
    request = GetZipcodeRequest()
    # Set the service code
    request.set_ServiceCode("addrp")
    # Set the AppKey
    request.set_AppKey("<your-app-key>")
    # Set the text parameter
    request.set_Text("Alibaba Xixi Campus")
    # Set the default province
    request.set_DefaultProvince("Zhejiang Province")
    # Set the default city
    request.set_DefaultCity("Hangzhou City")
    # Set the default district
    request.set_DefaultDistrict("Yuhang District")
    # Send the request
    response = client.do_action_with_exception(request)
    # Process the result
    resp_obj = json.loads(response)
    print(resp_obj['Data'])
    

if __name__ == '__main__':
    get_zip_code()

Sample response

{
    "zipcode":"311100",
    "status":"OK",
    "time_used":{
        "rt":{
            "basic_chunking":0.013387680053710938,
            "zipcode":0.004975080490112305,
            "segment":0.0003650188446044922,
            "address_correct":0.0029914379119873047,
            "complete":0.00014781951904296875,
            "address_search":0.11602139472961426,
            "structure":0.00007843971252441406
        },
        "start":1669171017.0285726
    }
}

Address completion

Sample request

import json

from aliyunsdkaddress_purification.request.v20191118.CompleteAddressRequest import CompleteAddressRequest
from aliyunsdkcore.client import AcsClient


# Test the address completion service
def complete_address():
    client = AcsClient(
        # For security, we strongly recommend against hard-coding your AccessKey ID and AccessKey Secret in your code.
        # Hard-coding credentials can lead to exposure, compromising all resources in your account.
        # This example reads credentials from environment variables. Make sure you have set them before running this code.
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
        "cn-hangzhou"
    )
    # Build the request
    request = CompleteAddressRequest()
    # Set the service code
    request.set_ServiceCode("addrp")
    # Set the AppKey
    request.set_AppKey("<your-app-key>")
    # Set the text parameter
    request.set_Text("Alibaba Xixi Campus")
    # Set the default province
    request.set_DefaultProvince("Zhejiang Province")
    # Set the default city
    request.set_DefaultCity("Hangzhou City")
    # Set the default district
    request.set_DefaultDistrict("Yuhang District")
    # Send the request
    response = client.do_action_with_exception(request)
    # Process the result
    resp_obj = json.loads(response)
    print(resp_obj['Data'])
    

if __name__ == '__main__':
    complete_address()

Sample response

{
    "complete":"prov=Zhejiang Province\tcity=Hangzhou City\tdistrict=Yuhang District\ttown=Wuchang Subdistrict\troad=North Side Road\tpoi=Alibaba Xixi Campus\tpoi_list=Alibaba Xixi Campus\tdetail=poi:Alibaba Xixi Campus",
    "status":"OK",
    "time_used":{
        "rt":{
            "basic_chunking":0.012922525405883789,
            "segment":0.000354766845703125,
            "address_correct":0.002960205078125,
            "complete":0.00012803077697753906,
            "address_search":0.1186680793762207,
            "structure":0.00007605552673339844
        },
        "start":1669171153.217013
    }
}

Address correction

Sample request

import json

from aliyunsdkaddress_purification.request.v20191118.CorrectAddressRequest import CorrectAddressRequest
from aliyunsdkcore.client import AcsClient


# Test the address correction service
def correct_address():
    client = AcsClient(
        # For security, we strongly recommend against hard-coding your AccessKey ID and AccessKey Secret in your code.
        # Hard-coding credentials can lead to exposure, compromising all resources in your account.
        # This example reads credentials from environment variables. Make sure you have set them before running this code.
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
        "cn-hangzhou"
    )
    # Build the request
    request = CorrectAddressRequest()
    # Set the service code
    request.set_ServiceCode("addrp")
    # Set the AppKey
    request.set_AppKey("<your-app-key>")
    # Set the text parameter
    request.set_Text("Alibaba Xixi Campus")
    # Set the default province
    request.set_DefaultProvince("Zhejiang Province")
    # Set the default city
    request.set_DefaultCity("Hangzhou City")
    # Set the default district
    request.set_DefaultDistrict("Yuhang District")
    # Send the request
    response = client.do_action_with_exception(request)
    # Process the result
    resp_obj = json.loads(response)
    print(resp_obj['Data'])
    

if __name__ == '__main__':
    correct_address()

Sample response

{
    "address_correct":[
        "Alibaba Xixi Campus=poi"
    ],
    "status":"OK",
    "time_used":{
        "rt":{
            "basic_chunking":0.012915611267089844,
            "segment":0.00030541419982910156,
            "address_correct":0.002071380615234375
        },
        "start":1669171269.9406161
    }
}

Address structuring

Sample request

import json

from aliyunsdkaddress_purification.request.v20191118.StructureAddressRequest import StructureAddressRequest
from aliyunsdkcore.client import AcsClient


# Test the address structuring service
def structure_address():
    client = AcsClient(
        # For security, we strongly recommend against hard-coding your AccessKey ID and AccessKey Secret in your code.
        # Hard-coding credentials can lead to exposure, compromising all resources in your account.
        # This example reads credentials from environment variables. Make sure you have set them before running this code.
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
        "cn-hangzhou"
    )
    # Build the request
    request = StructureAddressRequest()
    # Set the service code
    request.set_ServiceCode("addrp")
    # Set the AppKey
    request.set_AppKey("<your-app-key>")
    # Set the text parameter
    request.set_Text("Alibaba Xixi Campus")
    # Set the default province
    request.set_DefaultProvince("Zhejiang Province")
    # Set the default city
    request.set_DefaultCity("Hangzhou City")
    # Set the default district
    request.set_DefaultDistrict("Yuhang District")
    # Send the request
    response = client.do_action_with_exception(request)
    # Process the result
    resp_obj = json.loads(response)
    print(resp_obj['Data'])
    

if __name__ == '__main__':
    structure_address()

Sample response

{
    "structure":"prov=Zhejiang Province\tcity=Hangzhou City\tdistrict=Yuhang District\tpoi=Alibaba Xixi Campus\tpoi_list=Alibaba Xixi Campus\tdetail=poi:Alibaba Xixi Campus",
    "status":"OK",
    "time_used":{
        "rt":{
            "basic_chunking":0.012606382369995117,
            "structure":0.00008559226989746094
        },
        "start":1669171374.3107815
    }
}

Address similarity comparison

Sample request

import json

from aliyunsdkaddress_purification.request.v20191118.GetAddressSimilarityRequest import GetAddressSimilarityRequest
from aliyunsdkcore.client import AcsClient


# Test the address similarity comparison service
def get_address_similarity():
    client = AcsClient(
        # For security, we strongly recommend against hard-coding your AccessKey ID and AccessKey Secret in your code.
        # Hard-coding credentials can lead to exposure, compromising all resources in your account.
        # This example reads credentials from environment variables. Make sure you have set them before running this code.
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
        "cn-hangzhou"
    )
    # Build the request
    request = GetAddressSimilarityRequest()
    # Set the service code
    request.set_ServiceCode("addrp")
    # Set the AppKey
    request.set_AppKey("<your-app-key>")
    # Set the text parameter
    request.set_Text("Alibaba Xixi Campus, Hangzhou;Building 1, No. 969, Wenyi West Road, Hangzhou")
    # Set the default province
    request.set_DefaultProvince("Zhejiang Province")
    # Set the default city
    request.set_DefaultCity("Hangzhou City")
    # Set the default district
    request.set_DefaultDistrict("Yuhang District")
    # Send the request
    response = client.do_action_with_exception(request)
    # Process the result
    resp_obj = json.loads(response)
    print(resp_obj['Data'])
    

if __name__ == '__main__':
    get_address_similarity()

Sample response

{
    "sim_level":{
        "level":"none",
        "address_a":"Alibaba Xixi Campus, Hangzhou",
        "address_b":"Building 1, No. 969, Wenyi West Road, Hangzhou",
        "is_same":false,
        "same_info":"prov=Zhejiang Province city=Hangzhou City district=Yuhang District town=Wuchang Subdistrict road=North Side Road poi=Alibaba Xixi Campus"
    },
    "status":"OK",
    "time_used":{
        "rt":{
            "sim_level":0.29705166816711426
        },
        "start":1669171608.6918576
    }
}

Shipping label information extraction

Sample request

import json

from aliyunsdkaddress_purification.request.v20191118.ExtractExpressRequest import ExtractExpressRequest
from aliyunsdkcore.client import AcsClient


# Test the shipping label information extraction service
def extract_express():
    client = AcsClient(
        # For security, we strongly recommend against hard-coding your AccessKey ID and AccessKey Secret in your code.
        # Hard-coding credentials can lead to exposure, compromising all resources in your account.
        # This example reads credentials from environment variables. Make sure you have set them before running this code.
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
        "cn-hangzhou"
    )
    # Build the request
    request = ExtractExpressRequest()
    # Set the service code
    request.set_ServiceCode("addrp")
    # Set the AppKey
    request.set_AppKey("<your-app-key>")
    # Set the text parameter
    request.set_Text("To: Zhang San, 18111111111, Alibaba Xixi Campus, No. 969 Wenyi West Road, Yuhang District, Hangzhou, Zhejiang")
    # Set the default province
    request.set_DefaultProvince("Zhejiang Province")
    # Set the default city
    request.set_DefaultCity("Hangzhou City")
    # Set the default district
    request.set_DefaultDistrict("Yuhang District")
    # Send the request
    response = client.do_action_with_exception(request)
    # Process the result
    resp_obj = json.loads(response)
    print(resp_obj['Data'])
    

if __name__ == '__main__':
    extract_express()

Sample response

{
    "express_extract":{
        "house_info":"",
        "poi_info":"Alibaba Xixi Campus",
        "town":"Wuchang Subdistrict",
        "city":"Hangzhou City",
        "district":"Yuhang District",
        "tel":"",
        "addr_info":"Alibaba Xixi Campus",
        "per":"Zhang San",
        "prov":"Zhejiang Province"
    },
    "status":"OK",
    "time_used":{
        "rt":{
            "basic_chunking":0.017629623413085938,
            "segment":0.00044989585876464844,
            "address_correct":0.002103567123413086,
            "complete":0.00013947486877441406,
            "express_extract":0.000015497207641601562,
            "address_search":0.11596989631652832,
            "structure":0.00008130073547363281
        },
        "start":1669171698.909143
    }
}

Address type recognition

Sample request

import json
from aliyunsdkaddress_purification.request.v20191118.ClassifyPOIRequest import ClassifyPOIRequest
from aliyunsdkcore.client import AcsClient


# Test the address type recognition service
def classify_poi():
    client = AcsClient(
        # For security, we strongly recommend against hard-coding your AccessKey ID and AccessKey Secret in your code.
        # Hard-coding credentials can lead to exposure, compromising all resources in your account.
        # This example reads credentials from environment variables. Make sure you have set them before running this code.
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
        "cn-hangzhou"
    )
    # Build the request
    request = ClassifyPOIRequest()
    # Set the service code
    request.set_ServiceCode("addrp")
    # Set the AppKey
    request.set_AppKey("<your-app-key>")
    # Set the text parameter
    request.set_Text("No. 969, Wenyi West Road, Hangzhou City")
    # Set the default province
    request.set_DefaultProvince("Zhejiang Province")
    # Set the default city
    request.set_DefaultCity("Hangzhou City")
    # Set the default district
    request.set_DefaultDistrict("Yuhang District")
    # Send the request
    response = client.do_action_with_exception(request)
    # Process the result
    resp_obj = json.loads(response)
    print(resp_obj['Data'])
    

if __name__ == '__main__':
    classify_poi()

Sample response

{
    "poi_category":"Business and Residential#Industrial Park#Industrial Park",
    "status":"OK",
    "time_used":{
        "rt":{
            "basic_chunking":0.009802579879760742,
            "segment":0.00036644935607910156,
            "poi_category":0.09611964225769043,
            "address_correct":0.002713441848754883,
            "complete":0.00016927719116210938,
            "poi_predict":0.009340047836303711,
            "address_search":0.10860967636108398,
            "structure":0.00007390975952148438
        },
        "start":1669171813.0337927
    }
}

POI prediction

Sample request

import json
from aliyunsdkaddress_purification.request.v20191118.PredictPOIRequest import PredictPOIRequest
from aliyunsdkcore.client import AcsClient


# Test the POI prediction service
def predict_poi():
    client = AcsClient(
        # For security, we strongly recommend against hard-coding your AccessKey ID and AccessKey Secret in your code.
        # Hard-coding credentials can lead to exposure, compromising all resources in your account.
        # This example reads credentials from environment variables. Make sure you have set them before running this code.
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
        "cn-hangzhou"
    )
    # Build the request
    request = PredictPOIRequest()
    # Set the service code
    request.set_ServiceCode("addrp")
    # Set the AppKey
    request.set_AppKey("<your-app-key>")
    # Set the text parameter
    request.set_Text("No. 969, Wenyi West Road, Hangzhou City")
    # Set the default province
    request.set_DefaultProvince("Zhejiang Province")
    # Set the default city
    request.set_DefaultCity("Hangzhou City")
    # Set the default district
    request.set_DefaultDistrict("Yuhang District")
    # Send the request
    response = client.do_action_with_exception(request)
    # Process the result
    resp_obj = json.loads(response)
    print(resp_obj['Data'])


if __name__ == '__main__':
    predict_poi()

Sample response

{
    "poi_predict":"Alibaba Xixi Campus;Alibaba Xixi Qin-Cheng-Li;Xixi Yuecheng",
    "status":"OK",
    "time_used":{
        "rt":{
            "basic_chunking":0.00994110107421875,
            "segment":0.0003650188446044922,
            "address_correct":0.002363920211791992,
            "complete":0.00015807151794433594,
            "poi_predict":0.009273290634155273,
            "address_search":0.1206369400024414,
            "structure":0.0000782012939453125
        },
        "start":1669171937.3929715
    }
}

Coordinate system conversion

Sample request

import json

from aliyunsdkaddress_purification.request.v20191118.TransferCoordRequest import TransferCoordRequest
from aliyunsdkcore.client import AcsClient


# Test the coordinate system conversion service
def transfer_coord():
    client = AcsClient(
        # For security, we strongly recommend against hard-coding your AccessKey ID and AccessKey Secret in your code.
        # Hard-coding credentials can lead to exposure, compromising all resources in your account.
        # This example reads credentials from environment variables. Make sure you have set them before running this code.
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
        "cn-hangzhou"
    )
    # Build the request
    request = TransferCoordRequest()
    # Set the service code
    request.set_ServiceCode("addrp")
    # Set the AppKey
    request.set_AppKey("<your-app-key>")
    # Set the text parameter
    request.set_Text("120.026268,30.279164")
    # Set the source coordinate system
    request.set_SrcCoord("gcj02")
    # Set the default province
    request.set_DefaultProvince("Zhejiang Province")
    # Set the default city
    request.set_DefaultCity("Hangzhou City")
    # Set the default district
    request.set_DefaultDistrict("Yuhang District")
    # Send the request
    response = client.do_action_with_exception(request)
    # Process the result
    resp_obj = json.loads(response)
    print(resp_obj['Data'])
    

if __name__ == '__main__':
    transfer_coord()

Sample response

{
    "coord_transfer":{
        "BD09":"120.032768,30.285238",
        "CGCS2000":"120.021519,30.281543",
        "WGS84":"120.021519,30.281543",
        "GCJ02":"120.026268,30.279164"
    },
    "status":"OK",
    "time_used":{
        "rt":{
            "coord_transfer":0.0018177032470703125
        },
        "start":1669172778.467725
    }
}

Geocoding (POI-level)

Sample request

import json

from aliyunsdkaddress_purification.request.v20191118.GetAddressGeocodeRequest import GetAddressGeocodeRequest
from aliyunsdkcore.client import AcsClient


# Test the geocoding (POI-level) service
def get_address_geo_code():
    client = AcsClient(
        # For security, we strongly recommend against hard-coding your AccessKey ID and AccessKey Secret in your code.
        # Hard-coding credentials can lead to exposure, compromising all resources in your account.
        # This example reads credentials from environment variables. Make sure you have set them before running this code.
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
        "cn-hangzhou"
    )
    # Build the request
    request = GetAddressGeocodeRequest()
    # Set the service code
    request.set_ServiceCode("addrp")
    # Set the AppKey
    request.set_AppKey("<your-app-key>")
    # Set the text parameter
    request.set_Text("Zhang San, No. 969, Wenyi West Road, Hangzhou City")
    # Set the default province
    request.set_DefaultProvince("Zhejiang Province")
    # Set the default city
    request.set_DefaultCity("Hangzhou City")
    # Set the default district
    request.set_DefaultDistrict("Yuhang District")
    # Send the request
    response = client.do_action_with_exception(request)
    # Process the result
    resp_obj = json.loads(response)
    print(resp_obj['Data'])


if __name__ == '__main__':
    get_address_geo_code()

Sample response

{
    "offline_geocode":{
        "wgs84":"120.02099798073618,30.281364166381348",
        "level":"roadno",
        "gcj02":"120.025746,30.278984"
    },
    "status":"OK",
    "time_used":{
        "rt":{
            "basic_chunking":0.009981632232666016,
            "div_search":0.003966331481933594,
            "segment":0.00035262107849121094,
            "geocode":0.00010561943054199219,
            "address_correct":0.004092693328857422,
            "address_search":0.13806939125061035,
            "structure":0.00007510185241699219
        },
        "start":1669172938.3091307
    }
}

Address anomaly detection

Sample request

import json

from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.request import CommonRequest


# Test the address anomaly detection service


def address_assessment():
    client = AcsClient(
        # For security, we strongly recommend against hard-coding your AccessKey ID and AccessKey Secret in your code.
        # Hard-coding credentials can lead to exposure, compromising all resources in your account.
        # This example reads credentials from environment variables. Make sure you have set them before running this code.
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
        "cn-hangzhou"
    )
    # Build the request
    request = CommonRequest()
  	# Set the domain
    request.set_domain("address-purification.cn-hangzhou.aliyuncs.com")
  	# Set the product version
    request.set_version("2019-11-18")
  	# Set the product name
    request.set_product("address-purification")
  	# Set the service code for the location
    request.set_location_service_code("addrp")
  	# Set the action name
    request.set_action_name("AddressAssessment")
    request.set_method("POST")

    # Set the AppKey
    request.add_body_params("AppKey", "<your-app-key>")

    # Set request parameters
    request.add_body_params("Text", "Alibaba Xixi Campus")
  	# Set the service code
    request.add_body_params("ServiceCode", "addrp")
    request.add_body_params("DefaultCity", "Hangzhou City")
    request.add_body_params("AcceptLanguage", "zh-CN")

    # Send the request
    response = client.do_action_with_exception(request)

    # Process the result
    resp_obj = json.loads(response.decode("utf-8"))
    print(resp_obj)


if __name__ == '__main__':
    address_assessment()

Sample response

{
    "address_assessment":{
        "error_code":"0102050204000000",
        "error_content":[
            "Information is missing but does not affect understanding.",
            "County-level administrative division is partially missing and cannot be completed.",
            "Road name is missing.",
            "Administrative village is missing."
        ]
    },
    "status":"OK",
    "time_used":{
        "rt":{
            "basic_chunking":0.012493610382080078,
            "address_assessment":0.16082525253295898,
            "structure":0.00007700920104980469
        },
        "start":1680762367.9748535
    }
}

Address search

Sample request

import json

from aliyunsdkaddress_purification.request.v20191118.GetAddressSearchRequest import GetAddressSearchRequest
from aliyunsdkcore.client import AcsClient


# Test the address search service
def get_address_search():
    client = AcsClient(
        # For security, we strongly recommend against hard-coding your AccessKey ID and AccessKey Secret in your code.
        # Hard-coding credentials can lead to exposure, compromising all resources in your account.
        # This example reads credentials from environment variables. Make sure you have set them before running this code.
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
        "cn-hangzhou"
    )
    # Build the request
    request = GetAddressSearchRequest()
    # Set the service code
    request.set_ServiceCode("addrp")
    # Set the AppKey
    request.set_AppKey("<your-app-key>")
    # Set the text parameter
    request.set_Text("Alibaba Xixi Campus, Hangzhou City")
    # Set the default province
    request.set_DefaultProvince("Zhejiang Province")
    # Set the default city
    request.set_DefaultCity("Hangzhou City")
    # Set the default district
    request.set_DefaultDistrict("Yuhang District")
    # Send the request
    response = client.do_action_with_exception(request)
    # Process the result
    resp_obj = json.loads(response)
    print(resp_obj['Data'])


if __name__ == '__main__':
    get_address_search()

Sample response

{
    "address_search":[
        {
            "address":"Road on the north side of Xixi Phase V",
            "name":"Alibaba Xixi Campus C",
            "std_addr":"Zhejiang Province Hangzhou City Yuhang District Wuchang Subdistrict  North Side Road   Alibaba Xixi Campus C"
        },
        {
            "address":"No. 969 Wenyi West Road",
            "name":"Alibaba Xixi Campus A",
            "std_addr":"Zhejiang Province Hangzhou City Yuhang District Wuchang Subdistrict  Wenyi West Road 969  Alibaba Xixi Campus A"
        },
        {
            "address":"Xiwang Road",
            "name":"Alibaba Xixi Campus B",
            "std_addr":"Zhejiang Province Hangzhou City Yuhang District Wuchang Subdistrict  Xiwang Road   Alibaba Xixi Campus B"
        },
        {
            "address":"No. 969 Wenyi West Road, Alibaba Xixi Campus A",
            "name":"Alibaba Xixi Campus A (Building A5)",
            "std_addr":"Zhejiang Province Hangzhou City Yuhang District Wuchang Subdistrict  Wenyi West Road 969  Alibaba Xixi Campus A (Building A5)"
        },
        {
            "address":"No. 969 Wenyi West Road, Alibaba Xixi Campus A",
            "name":"Alibaba Xixi Campus A (Building A4)",
            "std_addr":"Zhejiang Province Hangzhou City Yuhang District Wuchang Subdistrict  Wenyi West Road 969  Alibaba Xixi Campus A (Building A4)"
        }
    ],
    "status":"OK",
    "time_used":{
        "rt":{
            "basic_chunking":0.01374197006225586,
            "segment":0.0004334449768066406,
            "address_correct":0.0030853748321533203,
            "address_search":0.11704516410827637,
            "structure":0.0000782012939453125
        },
        "start":1669173196.4693878
    }
}

Address autocomplete

Sample request

import json

from aliyunsdkaddress_purification.request.v20191118.GetInputSearchRequest import GetInputSearchRequest
from aliyunsdkcore.client import AcsClient


# Test the address autocomplete service
def get_input_search():
    client = AcsClient(
        # For security, we strongly recommend against hard-coding your AccessKey ID and AccessKey Secret in your code.
        # Hard-coding credentials can lead to exposure, compromising all resources in your account.
        # This example reads credentials from environment variables. Make sure you have set them before running this code.
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
        "cn-hangzhou"
    )
    # Build the request
    request = GetInputSearchRequest()
    # Set the service code
    request.set_ServiceCode("addrp")
    # Set the AppKey
    request.set_AppKey("<your-app-key>")
    # Set the text parameter
    request.set_Text("Alibaba Xixi Campus, Hangzhou City")
    # Set the default province
    request.set_DefaultProvince("Zhejiang Province")
    # Set the default city
    request.set_DefaultCity("Hangzhou City")
    # Set the default district
    request.set_DefaultDistrict("Yuhang District")
    # Send the request
    response = client.do_action_with_exception(request)
    # Process the result
    resp_obj = json.loads(response)
    print(resp_obj['Data'])


if __name__ == '__main__':
    get_input_search()

Sample response

{
    "input_search":[
        "Zhejiang Province Hangzhou City Yuhang District Wuchang Subdistrict  Wenyi West Road 969  Alibaba Xixi Campus A",
        "Zhejiang Province Hangzhou City Yuhang District Wuchang Subdistrict  Wenyi West Road   Alibaba Xixi Campus (Bus Stop)",
        "Zhejiang Province Hangzhou City Yuhang District Wuchang Subdistrict  Jucheng Road   Yike Hotel Apartment (Alibaba Xixi Campus Branch)",
        "Zhejiang Province Hangzhou City Yuhang District Wuchang Subdistrict  Xiwang Road   Alibaba Xixi Campus B",
        "Zhejiang Province Hangzhou City Yuhang District Wuchang Subdistrict  Xiangwang Street 199 Building 1 Tongyue Hotel (Hangzhou Alibaba Xixi Campus Branch)"
    ],
    "status":"OK",
    "time_used":{
        "rt":{
            "basic_chunking":0.013766765594482422,
            "input_search":0.1597459316253662,
            "structure":0.00007724761962890625
        },
        "start":1669173289.2598994
    }
}

Spoken address recognition

Sample request

import json

from aliyunsdkcore.client import AcsClient
# Test the spoken address recognition service
from aliyunsdkcore.request import CommonRequest


def asr_address_input():
    client = AcsClient(
        # For security, we strongly recommend against hard-coding your AccessKey ID and AccessKey Secret in your code.
        # Hard-coding credentials can lead to exposure, compromising all resources in your account.
        # This example reads credentials from environment variables. Make sure you have set them before running this code.
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
        "cn-hangzhou"
    )
    # Build the request
    request = CommonRequest()
  	# Set the domain
    request.set_domain("address-purification.cn-hangzhou.aliyuncs.com")
  	# Set the product version
    request.set_version("2019-11-18")
  	# Set the product name
    request.set_product("address-purification")
  	# Set the service code for the location
    request.set_location_service_code("addrp")
  	# Set the action name
    request.set_action_name("InputAsrAddress")
  	# Set the request method
    request.set_method("POST")

    # Set the AppKey
    request.add_body_params("AppKey", "41mobwqsfg7j")

    # Set request parameters
    request.add_body_params("Text", "Um, er, Qinhuangdao City, Funing... Funing District, No. 66 Huaihai Road, um, Huazhu Mishi Seaview Travel-shoot Homestay, Room 201.")
    request.add_body_params("ServiceCode", "addrp")
    request.add_body_params("DefaultCity", "Hangzhou City")
    request.add_body_params("AcceptLanguage", "zh-CN")

    # Send the request
    response = client.do_action_with_exception(request)

    # Process the result
    resp_obj = json.loads(response.decode("utf-8"))
    print(resp_obj)


if __name__ == '__main__':
    asr_address_input()

Sample response

{
	'RequestId': "B8CF74E1-2830-5146-91CE-0C778346ED60",
	'Data': '{"asr_address_input":{"house_info":"Room 201","struct":"prov=Hebei Province\\tcity=Qinhuangdao City\\tdistrict=Funing District\\troad=Huanhai Road\\troadno=No. 66\\tpoi=Huazhu Mishi Seaview Travel-shoot Homestay\\troomno=Room 201","poi_info":"No. 66 Huanhai Road, Huazhu Mishi Seaview Travel-shoot Homestay","town":"","city":"Qinhuangdao City","district":"Funing District","addr_info":"No. 66 Huanhai Road, Huazhu Mishi Seaview Travel-shoot Homestay, Room 201","prov":"Hebei Province"},"status":"OK","time_used":{"rt":{"asr_address_input":0.08004355430603027},"start":1675664185.0322597}}'
}

Street address standardization

Sample request

import json

from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.request import CommonRequest


# Test the street address standardization service


def street_std():
    client = AcsClient(
        # For security, we strongly recommend against hard-coding your AccessKey ID and AccessKey Secret in your code.
        # Hard-coding credentials can lead to exposure, compromising all resources in your account.
        # This example reads credentials from environment variables. Make sure you have set them before running this code.
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
        "cn-hangzhou"
    )
    # Build the request
    request = CommonRequest()
  	# Set the domain
    request.set_domain("address-purification.cn-hangzhou.aliyuncs.com")
  	# Set the product version
    request.set_version("2019-11-18")
  	# Set the product name
    request.set_product("address-purification")
  	# Set the service code for the location
    request.set_location_service_code("addrp")
  	# Set the action name
    request.set_action_name("StreetStd")
  	# Set the request method
    request.set_method("POST")

    # Set the AppKey
    request.add_body_params("AppKey", "Xcttmauvja0j")

    # Set request parameters
    request.add_body_params("Text", "No. 969, Wenyi West Road, Hangzhou City")
    # Set the service code
    request.add_body_params("ServiceCode", "addrp")
    request.add_body_params("DefaultCity", "Hangzhou City")
    request.add_body_params("AcceptLanguage", "zh-CN")

    # Send the request
    response = client.do_action_with_exception(request)

    # Process the result
    resp_obj = json.loads(response.decode("utf-8"))
    print(resp_obj)


if __name__ == '__main__':
    street_std()

Sample response

{
	'RequestId': '53292A6A-F387-14DC-8E78-484BF02E09E7',
	'Data': '{"street_std":"prov=Zhejiang Province\\tcity=Hangzhou City\\tdistrict=Yuhang District\\ttown=Wuchang Subdistrict\\troad=Wenyi West Road\\troadno=No. 969","status":"OK","time_used":{"rt":{"basic_chunking":0.01028585433959961,"street_std":0.0001442432403564453,"segment":0.00038886070251464844,"address_correct":0.002051115036010742,"address_search":0.12618684768676758,"structure":0.0000743865966796875},"start":1675413983.9960926}}'
}

Multi-source address unification

Sample request

import json

from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.request import CommonRequest


# Test the multi-source address unification service


def one_id_address():
    client = AcsClient(
        # For security, we strongly recommend against hard-coding your AccessKey ID and AccessKey Secret in your code.
        # Hard-coding credentials can lead to exposure, compromising all resources in your account.
        # This example reads credentials from environment variables. Make sure you have set them before running this code.
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
        "cn-hangzhou"
    )
    # Build the request
    request = CommonRequest()
  	# Set the domain
    request.set_domain("address-purification.cn-hangzhou.aliyuncs.com")
  	# Set the product version
    request.set_version("2019-11-18")
  	# Set the product name
    request.set_product("address-purification")
  	# Set the service code for the location
    request.set_location_service_code("addrp")
  	# Set the action name
    request.set_action_name("OneIdAddress")
  	# Set the request method
    request.set_method("POST")

    # Set the AppKey
    request.add_body_params("AppKey", "Xcttmauvja0j")

    # Set request parameters
    request.add_body_params("Text", "No. 969, Wenyi West Road, Hangzhou City")
    # Set the service code
    request.add_body_params("ServiceCode", "addrp")
    request.add_body_params("DefaultCity", "Hangzhou City")
    request.add_body_params("AcceptLanguage", "zh-CN")

    # Send the request
    response = client.do_action_with_exception(request)

    # Process the result
    resp_obj = json.loads(response.decode("utf-8"))
    print(resp_obj)


if __name__ == '__main__':
    one_id_address()

Sample response

{
	'RequestId': '7EF87685-675C-1753-BED1-3181D1F4D565',
	'Data': '{"online_address_unify":"82310db47579d1e4ef4484d7ce3f0b76","status":"OK","time_used":{"rt":{"basic_chunking":0.010370254516601562,"online_address_unify":0.0012214183807373047,"segment":0.0004582405090332031,"address_correct":0.0020546913146972656,"address_search":0.1227867603302002,"structure":0.0000743865966796875},"start":1675414152.5409853}}'
}

Conversational address inference

Sample request

import json

from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.request import CommonRequest


# Test the conversational address inference service


def address_inference():
    client = AcsClient(
        # For security, we strongly recommend against hard-coding your AccessKey ID and AccessKey Secret in your code.
        # Hard-coding credentials can lead to exposure, compromising all resources in your account.
        # This example reads credentials from environment variables. Make sure you have set them before running this code.
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
        "cn-hangzhou"
    )
    # Build the request
    request = CommonRequest()
  	# Set the domain
    request.set_domain("address-purification.cn-hangzhou.aliyuncs.com")
  	# Set the product version
    request.set_version("2019-11-18")
    # Set the product name
    request.set_product("address-purification")
  	# Set the service code for the location
    request.set_location_service_code("addrp")
  	# Set the action name
    request.set_action_name("AddressInference")
  	# Set the request method
    request.set_method("POST")

    # Set the AppKey
    request.add_body_params("AppKey", "Xcttmauvja0j")

    # Set request parameters
    request.add_body_params("Text", "I was hit by a car in front of an Alibaba campus, the one in Binjiang district.")
    # Set the service code
    request.add_body_params("ServiceCode", "addrp")
    request.add_body_params("DefaultCity", "Hangzhou City")
    request.add_body_params("AcceptLanguage", "zh-CN")

    # Send the request
    response = client.do_action_with_exception(request)

    # Process the result
    resp_obj = json.loads(response.decode("utf-8"))
    print(resp_obj)


if __name__ == '__main__':
    address_inference()

Sample response

{
	'RequestId': '8CF3720F-EDFD-1052-8679-73A1ADDEDD68',
	'Data': '{"address_inference":[{"address":"No. 699 Wangshang Road","divcode":"330108","name":"Alibaba Binjiang Campus","id":"B0FFG083SL","lxly":"30.1896,120.190371","std_addr":"Zhejiang Province Hangzhou City Binjiang District Changhe Subdistrict  Wangshang Road 699  Alibaba Binjiang Campus"},{"address":"No. 969 Wenyi West Road","divcode":"330110","name":"Alibaba Xixi Campus A","id":"B023B1D4BX","lxly":"30.278984,120.025746","std_addr":"Zhejiang Province Hangzhou City Yuhang District Wuchang Subdistrict  Wenyi West Road 969  Alibaba Xixi Campus A"},{"address":"Xiwang Road","divcode":"330110","name":"Alibaba Xixi Campus B","id":"B0FFGUEOJ9","lxly":"30.275962,120.027276","std_addr":"Zhejiang Province Hangzhou City Yuhang District Wuchang Subdistrict  Xiwang Road   Alibaba Xixi Campus B"}],"status":"OK","time_used":{"rt":{"dialog_extract":0.008522748947143555,"address_inference":0.47654223442077637},"start":1675414255.8609135}}'
}

High-precision geocoding (building-level)

Sample request

import json

from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.request import CommonRequest


# Test the high-precision geocoding service


def hp_geocode():
    client = AcsClient(
        # For security, we strongly recommend against hard-coding your AccessKey ID and AccessKey Secret in your code.
        # Hard-coding credentials can lead to exposure, compromising all resources in your account.
        # This example reads credentials from environment variables. Make sure you have set them before running this code.
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
        "cn-hangzhou"
    )
    # Build the request
    request = CommonRequest()
  	# Set the domain
    request.set_domain("address-purification.cn-hangzhou.aliyuncs.com")
  	# Set the product version
    request.set_version("2019-11-18")
  	# Set the product name
    request.set_product("address-purification")
  	# Set the service code for the location
    request.set_location_service_code("addrp")
  	# Set the action name
    request.set_action_name("HpGeocode")
    request.set_method("POST")

    # Set the AppKey
    request.add_body_params("AppKey", "Xcttmauvja0j")

    # Set request parameters
    request.add_body_params("Text", "I was hit by a car in front of an Alibaba campus, the one in Binjiang district.")
    # Set the service code
    request.add_body_params("ServiceCode", "addrp")
    request.add_body_params("DefaultCity", "Hangzhou City")
    request.add_body_params("AcceptLanguage", "zh-CN")

    # Send the request
    response = client.do_action_with_exception(request)

    # Process the result
    resp_obj = json.loads(response.decode("utf-8"))
    print(resp_obj)


if __name__ == '__main__':
    hp_geocode()

Sample response

{
	'RequestId': '746B0AAA-E668-1718-8288-71BCF0A34A52',
	'Data': '{"hpgeocode":{"level":"subpoi","gcj02":"120.190371,30.1896"},"status":"OK","time_used":{"rt":{"hpgeocode":0.18102073669433594},"start":1675414344.822714}}'
}