Python SDK
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-purificationConfigure 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.
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
Create two new environment variables,
ALIBABA_CLOUD_ACCESS_KEY_IDandALIBABA_CLOUD_ACCESS_KEY_SECRET, and set their values to your AccessKey ID and AccessKey Secret, respectively.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}}'
}