Python SDK

Python SDK调用方法及示例。

获取SDK

# 安装阿里云 SDK 核心库
pip install aliyun-python-sdk-core

# 安装地址标准化SDK
pip install aliyun-python-sdk-address-purification

配置环境变量

阿里云SDK支持通过定义ALIBABA_CLOUD_ACCESS_KEY_IDALIBABA_CLOUD_ACCESS_KEY_SECRET环境变量来创建默认的访问凭证。调用接口时,程序直接访问凭证,读取您的访问密钥(即AccessKey)并自动完成鉴权。

重要

阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维,避免AccessKey泄露。

配置方法

配置环境变量ALIBABA_CLOUD_ACCESS_KEY_IDALIBABA_CLOUD_ACCESS_KEY_SECRET

  • Linux和macOS系统配置方法

    执行以下命令:

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

    <access_key_id>需替换为已准备好的AccessKey ID,<access_key_secret>替换为AccessKey Secret。

  • Windows系统配置方法

    1. 新建环境变量,添加环境变量ALIBABA_CLOUD_ACCESS_KEY_IDALIBABA_CLOUD_ACCESS_KEY_SECRET,并写入已准备好的AccessKey ID和AccessKey Secret。

    2. 重启Windows系统。

地址抽取

请求示例

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


# 地址抽取服务测试
def extract_address():
    client = AcsClient(
      	// 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
        // 本示例以将AccessKey ID和AccessKey Secret保存到环境变量为例说明。运行本代码示例之前,请先配置环境变量。
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
        "cn-hangzhou"
    )
    # 构建request
    request = ExtractAddressRequest()
    # 设置服务code
    request.set_ServiceCode("addrp")
    # 设置appKey
    request.set_AppKey("<your-app-key>")
    # 设置请求文本参数
    request.set_Text("杭州市文一西路969号")
    # 设置默认省份信息
    request.set_DefaultProvince("浙江省")
    # 设置默认城市信息
    request.set_DefaultCity("杭州市")
    # 设置默认区级信息
    request.set_DefaultDistrict("余杭区")
    # 发送请求
    response = client.do_action_with_exception(request)
    # 处理请求结果
    resp_obj = json.loads(response)
    print(resp_obj['Data'])


if __name__ == '__main__':
    extract_address()

返回示例

{
    "location_extract":[
        {
            "start":0,
            "end":11,
            "type":"LOC",
            "word":"杭州市文一西路969号"
        }
    ],
    "status":"OK",
    "time_used":{
        "rt":{
            "location_extract":0.0062503814697265625
        },
        "start":1669169268.4418545
    }
}

姓名抽取

请求示例

import json

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


# 姓名抽取服务测试
def extract_name():
    client = AcsClient(
        // 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
        // 本示例以将AccessKey ID和AccessKey Secret保存到环境变量为例说明。运行本代码示例之前,请先配置环境变量。
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
        "cn-hangzhou"
    )
    # 构建request
    request = ExtractNameRequest()
    # 设置服务code
    request.set_ServiceCode("addrp")
    # 设置appKey
    request.set_AppKey("<your-app-key>")
    # 设置请求文本参数
    request.set_Text("张三和李四来到了阿里巴巴西溪园区")
    # 设置默认省份信息
    request.set_DefaultProvince("浙江省")
    # 设置默认城市信息
    request.set_DefaultCity("杭州市")
    # 设置默认区级信息
    request.set_DefaultDistrict("余杭区")
    # 发送请求
    response = client.do_action_with_exception(request)
    # 处理请求结果
    resp_obj = json.loads(response)
    print(resp_obj['Data'])



if __name__ == '__main__':
    extract_name()

返回示例

{
    "person_extract":[
        {
            "start":0,
            "end":2,
            "type":"PER",
            "word":"张三"
        },
        {
            "start":3,
            "end":5,
            "type":"PER",
            "word":"李四"
        }
    ],
    "status":"OK",
    "time_used":{
        "rt":{
            "person_extract":0.006942272186279297
        },
        "start":1669169781.5687082
    }
}

电话号码抽取

请求示例

import json

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


# 电话号码抽取服务测试
def extract_phone():
    client = AcsClient(
        // 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
        // 本示例以将AccessKey ID和AccessKey Secret保存到环境变量为例说明。运行本代码示例之前,请先配置环境变量。
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
        "cn-hangzhou"
    )
    # 构建request
    request = ExtractPhoneRequest()
    # 设置服务code
    request.set_ServiceCode("addrp")
    # 设置appKey
    request.set_AppKey("<your-app-key>")
    # 设置请求文本参数
    request.set_Text("张三的新手机号是18111111111")
    # 设置默认省份信息
    request.set_DefaultProvince("浙江省")
    # 设置默认城市信息
    request.set_DefaultCity("杭州市")
    # 设置默认区级信息
    request.set_DefaultDistrict("余杭区")
    # 发送请求
    response = client.do_action_with_exception(request)
    # 处理请求结果
    resp_obj = json.loads(response)
    print(resp_obj['Data'])


if __name__ == '__main__':
    extract_phone()

返回示例

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

行政区划解析

请求示例

import json

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


# 行政区划解析服务测试
def get_address_division_code():
    client = AcsClient(
        // 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
        // 本示例以将AccessKey ID和AccessKey Secret保存到环境变量为例说明。运行本代码示例之前,请先配置环境变量。
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
        "cn-hangzhou"
    )
    # 构建request
    request = GetAddressDivisionCodeRequest()
    # 设置服务code
    request.set_ServiceCode("addrp")
    # 设置appKey
    request.set_AppKey("<your-app-key>")
    # 设置请求文本参数
    request.set_Text("张三的新手机号是18111111111")
    # 设置默认省份信息
    request.set_DefaultProvince("浙江省")
    # 设置默认城市信息
    request.set_DefaultCity("杭州市")
    # 设置默认区级信息
    request.set_DefaultDistrict("余杭区")
    # 发送请求
    response = client.do_action_with_exception(request)
    # 处理请求结果
    resp_obj = json.loads(response)
    print(resp_obj['Data'])


if __name__ == '__main__':
    get_address_division_code()

返回示例

{
    "division_info":{
        "divcode":"330110000000",
        "division_name":"浙江省;杭州市;余杭区;"
    },
    "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
    }
}

邮编识别

请求示例

import json

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


# 邮编识别服务测试
def get_zip_code():
    client = AcsClient(
        // 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
        // 本示例以将AccessKey ID和AccessKey Secret保存到环境变量为例说明。运行本代码示例之前,请先配置环境变量。
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
        "cn-hangzhou"
    )
    # 构建request
    request = GetZipcodeRequest()
    # 设置服务code
    request.set_ServiceCode("addrp")
    # 设置appKey
    request.set_AppKey("<your-app-key>")
    # 设置请求文本参数
    request.set_Text("阿里巴巴西溪园区")
    # 设置默认省份信息
    request.set_DefaultProvince("浙江省")
    # 设置默认城市信息
    request.set_DefaultCity("杭州市")
    # 设置默认区级信息
    request.set_DefaultDistrict("余杭区")
    # 发送请求
    response = client.do_action_with_exception(request)
    # 处理请求结果
    resp_obj = json.loads(response)
    print(resp_obj['Data'])
    

if __name__ == '__main__':
    get_zip_code()

返回示例

{
    "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
    }
}

地址补全

请求示例

import json

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


# 地址补全服务测试
def complete_address():
    client = AcsClient(
        // 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
        // 本示例以将AccessKey ID和AccessKey Secret保存到环境变量为例说明。运行本代码示例之前,请先配置环境变量。
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
        "cn-hangzhou"
    )
    # 构建request
    request = CompleteAddressRequest()
    # 设置服务code
    request.set_ServiceCode("addrp")
    # 设置appKey
    request.set_AppKey("<your-app-key>")
    # 设置请求文本参数
    request.set_Text("阿里巴巴西溪园区")
    # 设置默认省份信息
    request.set_DefaultProvince("浙江省")
    # 设置默认城市信息
    request.set_DefaultCity("杭州市")
    # 设置默认区级信息
    request.set_DefaultDistrict("余杭区")
    # 发送请求
    response = client.do_action_with_exception(request)
    # 处理请求结果
    resp_obj = json.loads(response)
    print(resp_obj['Data'])
    

if __name__ == '__main__':
    complete_address()

返回示例

{
    "complete":"prov=浙江省\tcity=杭州市\tdistrict=余杭区\ttown=五常街道\troad=北侧道路\tpoi=阿里巴巴西溪园区\tpoi_list=阿里巴巴西溪园区\tdetail=poi:阿里巴巴西溪园区",
    "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
    }
}

地址纠错

请求示例

import json

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


# 地址纠错服务测试
def correct_address():
    client = AcsClient(
      	// 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
        // 本示例以将AccessKey ID和AccessKey Secret保存到环境变量为例说明。运行本代码示例之前,请先配置环境变量。
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
        "cn-hangzhou"
    )
    # 构建request
    request = CorrectAddressRequest()
    # 设置服务code
    request.set_ServiceCode("addrp")
    # 设置appKey
    request.set_AppKey("<your-app-key>")
    # 设置请求文本参数
    request.set_Text("阿里巴巴西溪园区")
    # 设置默认省份信息
    request.set_DefaultProvince("浙江省")
    # 设置默认城市信息
    request.set_DefaultCity("杭州市")
    # 设置默认区级信息
    request.set_DefaultDistrict("余杭区")
    # 发送请求
    response = client.do_action_with_exception(request)
    # 处理请求结果
    resp_obj = json.loads(response)
    print(resp_obj['Data'])
    

if __name__ == '__main__':
    correct_address()

返回示例

{
    "address_correct":[
        "阿里巴巴西溪园区=poi"
    ],
    "status":"OK",
    "time_used":{
        "rt":{
            "basic_chunking":0.012915611267089844,
            "segment":0.00030541419982910156,
            "address_correct":0.002071380615234375
        },
        "start":1669171269.9406161
    }
}

地址结构化

请求示例

import json

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


# 地址结构化服务测试
def structure_address():
    client = AcsClient(
        // 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
        // 本示例以将AccessKey ID和AccessKey Secret保存到环境变量为例说明。运行本代码示例之前,请先配置环境变量。
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
        "cn-hangzhou"
    )
    # 构建request
    request = StructureAddressRequest()
    # 设置服务code
    request.set_ServiceCode("addrp")
    # 设置appKey
    request.set_AppKey("<your-app-key>")
    # 设置请求文本参数
    request.set_Text("阿里巴巴西溪园区")
    # 设置默认省份信息
    request.set_DefaultProvince("浙江省")
    # 设置默认城市信息
    request.set_DefaultCity("杭州市")
    # 设置默认区级信息
    request.set_DefaultDistrict("余杭区")
    # 发送请求
    response = client.do_action_with_exception(request)
    # 处理请求结果
    resp_obj = json.loads(response)
    print(resp_obj['Data'])
    

if __name__ == '__main__':
    structure_address()

返回示例

{
    "structure":"prov=浙江省\tcity=杭州市\tdistrict=余杭区\tpoi=阿里巴巴西溪园区\tpoi_list=阿里巴巴西溪园区\tdetail=poi:阿里巴巴西溪园区",
    "status":"OK",
    "time_used":{
        "rt":{
            "basic_chunking":0.012606382369995117,
            "structure":0.00008559226989746094
        },
        "start":1669171374.3107815
    }
}

多地址相似性判断

请求示例

import json

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


# 多地址相似性判断服务测试
def get_address_similarity():
    client = AcsClient(
        // 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
        // 本示例以将AccessKey ID和AccessKey Secret保存到环境变量为例说明。运行本代码示例之前,请先配置环境变量。
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
        "cn-hangzhou"
    )
    # 构建request
    request = GetAddressSimilarityRequest()
    # 设置服务code
    request.set_ServiceCode("addrp")
    # 设置appKey
    request.set_AppKey("<your-app-key>")
    # 设置请求文本参数
    request.set_Text("杭州市阿里巴巴西溪园区;杭州市文一西路969号1号楼")
    # 设置默认省份信息
    request.set_DefaultProvince("浙江省")
    # 设置默认城市信息
    request.set_DefaultCity("杭州市")
    # 设置默认区级信息
    request.set_DefaultDistrict("余杭区")
    # 发送请求
    response = client.do_action_with_exception(request)
    # 处理请求结果
    resp_obj = json.loads(response)
    print(resp_obj['Data'])
    

if __name__ == '__main__':
    get_address_similarity()

返回示例

{
    "sim_level":{
        "level":"none",
        "address_a":"杭州市阿里巴巴西溪园区",
        "address_b":"杭州市文一西路969号1号楼",
        "is_same":false,
        "same_info":"prov=浙江省 city=杭州市 district=余杭区 town=五常街道 road=北侧道路 poi=阿里巴巴西溪园区"
    },
    "status":"OK",
    "time_used":{
        "rt":{
            "sim_level":0.29705166816711426
        },
        "start":1669171608.6918576
    }
}

物流面单信息提取

请求示例

import json

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


# 物流面单信息提取服务测试
def extract_express():
    client = AcsClient(
        // 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
        // 本示例以将AccessKey ID和AccessKey Secret保存到环境变量为例说明。运行本代码示例之前,请先配置环境变量。
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
        "cn-hangzhou"
    )
    # 构建request
    request = ExtractExpressRequest()
    # 设置服务code
    request.set_ServiceCode("addrp")
    # 设置appKey
    request.set_AppKey("<your-app-key>")
    # 设置请求文本参数
    request.set_Text("张三和李四来到了阿里巴巴西溪园区")
    # 设置默认省份信息
    request.set_DefaultProvince("浙江省")
    # 设置默认城市信息
    request.set_DefaultCity("杭州市")
    # 设置默认区级信息
    request.set_DefaultDistrict("余杭区")
    # 发送请求
    response = client.do_action_with_exception(request)
    # 处理请求结果
    resp_obj = json.loads(response)
    print(resp_obj['Data'])
    

if __name__ == '__main__':
    extract_express()

返回示例

{
    "express_extract":{
        "house_info":"",
        "poi_info":"阿里巴巴西溪园区",
        "town":"五常街道",
        "city":"杭州市",
        "district":"余杭区",
        "tel":"",
        "addr_info":"阿里巴巴西溪园区",
        "per":"张三",
        "prov":"浙江省"
    },
    "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
    }
}

地址类型识别

请求示例

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


# 地址类型识别服务测试
def classify_poi():
    client = AcsClient(
        // 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
        // 本示例以将AccessKey ID和AccessKey Secret保存到环境变量为例说明。运行本代码示例之前,请先配置环境变量。
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
        "cn-hangzhou"
    )
    # 构建request
    request = ClassifyPOIRequest()
    # 设置服务code
    request.set_ServiceCode("addrp")
    # 设置appKey
    request.set_AppKey("<your-app-key>")
    # 设置请求文本参数
    request.set_Text("杭州市文一西路969号")
    # 设置默认省份信息
    request.set_DefaultProvince("浙江省")
    # 设置默认城市信息
    request.set_DefaultCity("杭州市")
    # 设置默认区级信息
    request.set_DefaultDistrict("余杭区")
    # 发送请求
    response = client.do_action_with_exception(request)
    # 处理请求结果
    resp_obj = json.loads(response)
    print(resp_obj['Data'])
    

if __name__ == '__main__':
    classify_poi()

返回示例

{
    "poi_category":"商务住宅#产业园区#产业园区",
    "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预测

请求示例

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


# poi预测服务测试
def predict_poi():
    client = AcsClient(
        // 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
        // 本示例以将AccessKey ID和AccessKey Secret保存到环境变量为例说明。运行本代码示例之前,请先配置环境变量。
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
        "cn-hangzhou"
    )
    # 构建request
    request = PredictPOIRequest()
    # 设置服务code
    request.set_ServiceCode("addrp")
    # 设置appKey
    request.set_AppKey("<your-app-key>")
    # 设置请求文本参数
    request.set_Text("杭州市文一西路969号")
    # 设置默认省份信息
    request.set_DefaultProvince("浙江省")
    # 设置默认城市信息
    request.set_DefaultCity("杭州市")
    # 设置默认区级信息
    request.set_DefaultDistrict("余杭区")
    # 发送请求
    response = client.do_action_with_exception(request)
    # 处理请求结果
    resp_obj = json.loads(response)
    print(resp_obj['Data'])


if __name__ == '__main__':
    predict_poi()

返回示例

{
    "poi_predict":"阿里巴巴西溪园区;阿里巴巴西溪亲橙里;西溪悦城",
    "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
    }
}

坐标系转换

请求示例

import json

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


# 坐标系转换服务测试
def transfer_coord():
    client = AcsClient(
        // 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
        // 本示例以将AccessKey ID和AccessKey Secret保存到环境变量为例说明。运行本代码示例之前,请先配置环境变量。
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
        "cn-hangzhou"
    )
    # 构建request
    request = TransferCoordRequest()
    # 设置服务code
    request.set_ServiceCode("addrp")
    # 设置appKey
    request.set_AppKey("<your-app-key>")
    # 设置请求文本参数
    request.set_Text("120.026268,30.279164")
    # 设置坐标系类型
    request.set_SrcCoord("gcj02")
    # 设置默认省份信息
    request.set_DefaultProvince("浙江省")
    # 设置默认城市信息
    request.set_DefaultCity("杭州市")
    # 设置默认区级信息
    request.set_DefaultDistrict("余杭区")
    # 发送请求
    response = client.do_action_with_exception(request)
    # 处理请求结果
    resp_obj = json.loads(response)
    print(resp_obj['Data'])
    

if __name__ == '__main__':
    transfer_coord()

返回示例

{
    "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
    }
}

通用经纬度查询(POI级别)

请求示例

import json

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


# 通用经纬度查询(POI级别)服务测试
def get_address_geo_code():
    client = AcsClient(
        // 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
        // 本示例以将AccessKey ID和AccessKey Secret保存到环境变量为例说明。运行本代码示例之前,请先配置环境变量。
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
        "cn-hangzhou"
    )
    # 构建request
    request = GetAddressGeocodeRequest()
    # 设置服务code
    request.set_ServiceCode("addrp")
    # 设置appKey
    request.set_AppKey("<your-app-key>")
    # 设置请求文本参数
    request.set_Text("张三杭州市文一西路969号")
    # 设置默认省份信息
    request.set_DefaultProvince("浙江省")
    # 设置默认城市信息
    request.set_DefaultCity("杭州市")
    # 设置默认区级信息
    request.set_DefaultDistrict("余杭区")
    # 发送请求
    response = client.do_action_with_exception(request)
    # 处理请求结果
    resp_obj = json.loads(response)
    print(resp_obj['Data'])


if __name__ == '__main__':
    get_address_geo_code()

返回示例

{
    "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
    }
}

地址异常检测

请求示例

import json

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


# 新 异常地址判定 服务调用 测试


def address_assessment():
    client = AcsClient(
        // 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
        // 本示例以将AccessKey ID和AccessKey Secret保存到环境变量为例说明。运行本代码示例之前,请先配置环境变量。
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
        "cn-hangzhou"
    )
    # 构建request
    request = CommonRequest()
  	# 指定域名
    request.set_domain("address-purification.cn-hangzhou.aliyuncs.com")
  	# 指定产品版本
    request.set_version("2019-11-18")
  	# 指定产品
    request.set_product("address-purification")
  	# 指定服务
    request.set_location_service_code("addrp")
  	# 指定接口
    request.set_action_name("AddressAssessment")
    request.set_method("POST")

    # 设置项目token
    request.add_body_params("AppKey", "<your-app-key>")

    # 设置请求参数
    request.add_body_params("Text", "阿里巴巴西溪园区")
  	# 指定服务
    request.add_body_params("ServiceCode", "addrp")
    request.add_body_params("DefaultCity", "杭州市")
    request.add_body_params("AcceptLanguage", "zh-CN")

    # 发送请求
    response = client.do_action_with_exception(request)

    # 处理请求结果
    resp_obj = json.loads(response.decode("utf-8"))
    print(resp_obj)


if __name__ == '__main__':
    hp_geocode()

返回示例

{
    "address_assessment":{
        "error_code":"0102050204000000",
        "error_content":[
            "缺少信息,但不影响理解",
            "区县级行政区划部分缺失(无法补齐)",
            "路名缺失",
            "缺少行政村"
        ]
    },
    "status":"OK",
    "time_used":{
        "rt":{
            "basic_chunking":0.012493610382080078,
            "address_assessment":0.16082525253295898,
            "structure":0.00007700920104980469
        },
        "start":1680762367.9748535
    }
}

地址搜索

请求示例

import json

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


# 地址搜索服务测试
def get_address_search():
    client = AcsClient(
        // 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
        // 本示例以将AccessKey ID和AccessKey Secret保存到环境变量为例说明。运行本代码示例之前,请先配置环境变量。
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
        "cn-hangzhou"
    )
    # 构建request
    request = GetAddressSearchRequest()
    # 设置服务code
    request.set_ServiceCode("addrp")
    # 设置appKey
    request.set_AppKey("<your-app-key>")
    # 设置请求文本参数
    request.set_Text("杭州市阿里巴巴西溪园区")
    # 设置默认省份信息
    request.set_DefaultProvince("浙江省")
    # 设置默认城市信息
    request.set_DefaultCity("杭州市")
    # 设置默认区级信息
    request.set_DefaultDistrict("余杭区")
    # 发送请求
    response = client.do_action_with_exception(request)
    # 处理请求结果
    resp_obj = json.loads(response)
    print(resp_obj['Data'])


if __name__ == '__main__':
    get_address_search()

返回示例

{
    "address_search":[
        {
            "address":"西溪五期北侧道路",
            "name":"阿里巴巴西溪C区",
            "std_addr":"浙江省 杭州市 余杭区 五常街道  北侧道路   阿里巴巴西溪C区"
        },
        {
            "address":"文一西路969号",
            "name":"阿里巴巴西溪A区",
            "std_addr":"浙江省 杭州市 余杭区 五常街道  文一西路 969号  阿里巴巴西溪A区"
        },
        {
            "address":"溪望路",
            "name":"阿里巴巴西溪B区",
            "std_addr":"浙江省 杭州市 余杭区 五常街道  溪望路   阿里巴巴西溪B区"
        },
        {
            "address":"文一西路969号阿里巴巴西溪A区",
            "name":"阿里巴巴西溪A区(A5楼)",
            "std_addr":"浙江省 杭州市 余杭区 五常街道  文一西路 969号  阿里巴巴西溪A区(A5楼)"
        },
        {
            "address":"文一西路969号阿里巴巴西溪A区",
            "name":"阿里巴巴西溪A区(A4楼)",
            "std_addr":"浙江省 杭州市 余杭区 五常街道  文一西路 969号  阿里巴巴西溪A区(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
    }
}

地址输入联想

请求示例

import json

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


# 地址输入联想服务测试
def get_input_search():
    client = AcsClient(
        // 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
        // 本示例以将AccessKey ID和AccessKey Secret保存到环境变量为例说明。运行本代码示例之前,请先配置环境变量。
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
        "cn-hangzhou"
    )
    # 构建request
    request = GetInputSearchRequest()
    # 设置服务code
    request.set_ServiceCode("addrp")
    # 设置appKey
    request.set_AppKey("<your-app-key>")
    # 设置请求文本参数
    request.set_Text("杭州市阿里巴巴西溪园区")
    # 设置默认省份信息
    request.set_DefaultProvince("浙江省")
    # 设置默认城市信息
    request.set_DefaultCity("杭州市")
    # 设置默认区级信息
    request.set_DefaultDistrict("余杭区")
    # 发送请求
    response = client.do_action_with_exception(request)
    # 处理请求结果
    resp_obj = json.loads(response)
    print(resp_obj['Data'])


if __name__ == '__main__':
    get_input_search()

返回示例

{
    "input_search":[
        "浙江省 杭州市 余杭区 五常街道  文一西路 969号  阿里巴巴西溪A区",
        "浙江省 杭州市 余杭区 五常街道  文一西路   阿里巴巴西溪园区(公交站)",
        "浙江省 杭州市 余杭区 五常街道  聚橙路   驿客酒店式公寓(阿里巴巴西溪园区店)",
        "浙江省 杭州市 余杭区 五常街道  溪望路   阿里巴巴西溪B区",
        "浙江省 杭州市 余杭区 五常街道  向往街 199号 1号楼 同悦酒店(杭州阿里巴巴西溪园区店)"
    ],
    "status":"OK",
    "time_used":{
        "rt":{
            "basic_chunking":0.013766765594482422,
            "input_search":0.1597459316253662,
            "structure":0.00007724761962890625
        },
        "start":1669173289.2598994
    }
}

语音地址输入识别

请求示例

import json

from aliyunsdkcore.client import AcsClient
# 地址类型识别 服务调用 测试
from aliyunsdkcore.request import CommonRequest


def asr_address_input():
    client = AcsClient(
        // 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
        // 本示例以将AccessKey ID和AccessKey Secret保存到环境变量为例说明。运行本代码示例之前,请先配置环境变量。
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
        "cn-hangzhou"
    )
    # 构建request
    request = CommonRequest()
  	# 指定域名
    request.set_domain("address-purification.cn-hangzhou.aliyuncs.com")
  	# 指定产品版本
    request.set_version("2019-11-18")
  	# 指定产品
    request.set_product("address-purification")
  	# 指定服务
    request.set_location_service_code("addrp")
  	# 指定接口
    request.set_action_name("InputAsrAddress")
  	# 请求方式
    request.set_method("POST")

    # 设置项目token
    request.add_body_params("AppKey", "41mobwqsfg7j")

    # 设置请求参数
    request.add_body_params("Text", "嗯,呃秦皇岛市抚宁抚宁区淮海路66号嗯花筑米十海景旅拍民宿201室。")
    request.add_body_params("ServiceCode", "addrp")
    request.add_body_params("DefaultCity", "杭州市")
    request.add_body_params("AcceptLanguage", "zh-CN")

    # 发送请求
    response = client.do_action_with_exception(request)

    # 处理请求结果
    resp_obj = json.loads(response.decode("utf-8"))
    print(resp_obj)


if __name__ == '__main__':
    asr_address_input()

返回示例

{
	'RequestId': "B8CF74E1-2830-5146-91CE-0C778346ED60",
	'Data': '{"asr_address_input":{"house_info":"201室","struct":"prov=河北省\\tcity=秦皇岛市\\tdistrict=抚宁区\\troad=环海路\\troadno=66号\\tpoi=花筑米十海景旅拍民宿\\troomno=201室","poi_info":"环海路66号花筑米十海景旅拍民宿","town":"","city":"秦皇岛市","district":"抚宁区","addr_info":"环海路66号花筑米十海景旅拍民宿201室","prov":"河北省"},"status":"OK","time_used":{"rt":{"asr_address_input":0.08004355430603027},"start":1675664185.0322597}}'
}

门址标准化

请求示例

import json

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


# 门址标准化 服务调用 测试


def street_std():
    client = AcsClient(
        // 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
        // 本示例以将AccessKey ID和AccessKey Secret保存到环境变量为例说明。运行本代码示例之前,请先配置环境变量。
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
        "cn-hangzhou"
    )
    # 构建request
    request = CommonRequest()
  	# 设置域名
    request.set_domain("address-purification.cn-hangzhou.aliyuncs.com")
  	# 设置产品版本
    request.set_version("2019-11-18")
  	# 设置产品名称
    request.set_product("address-purification")
  	# 指定服务
    request.set_location_service_code("addrp")
  	# 指定接口名称
    request.set_action_name("StreetStd")
  	# 设置请求方式
    request.set_method("POST")

    # 设置项目token
    request.add_body_params("AppKey", "Xcttmauvja0j")

    # 设置请求参数
    request.add_body_params("Text", "杭州市文一西路969号")
		# 指定服务
    request.add_body_params("ServiceCode", "addrp")
    request.add_body_params("DefaultCity", "杭州市")
    request.add_body_params("AcceptLanguage", "zh-CN")

    # 发送请求
    response = client.do_action_with_exception(request)

    # 处理请求结果
    resp_obj = json.loads(response.decode("utf-8"))
    print(resp_obj)


if __name__ == '__main__':
    street_std()

返回示例

{
	'RequestId': '53292A6A-F387-14DC-8E78-484BF02E09E7',
	'Data': '{"street_std":"prov=浙江省\\tcity=杭州市\\tdistrict=余杭区\\ttown=五常街道\\troad=文一西路\\troadno=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}}'
}

多源地址归一

请求示例

import json

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


# 多源地址归一服务测试


def one_id_address():
    client = AcsClient(
        // 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
        // 本示例以将AccessKey ID和AccessKey Secret保存到环境变量为例说明。运行本代码示例之前,请先配置环境变量。
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
        "cn-hangzhou"
    )
    # 构建request
    request = CommonRequest()
  	# 设置域名
    request.set_domain("address-purification.cn-hangzhou.aliyuncs.com")
  	# 设置产品版本
    request.set_version("2019-11-18")
  	# 设置产品
    request.set_product("address-purification")
  	# 指定服务
    request.set_location_service_code("addrp")
  	# 指定接口
    request.set_action_name("OneIdAddress")
  	# 设置请求方式
    request.set_method("POST")

    # 设置项目token
    request.add_body_params("AppKey", "Xcttmauvja0j")

    # 设置请求参数
    request.add_body_params("Text", "杭州市文一西路969号")
  	# 指定服务
    request.add_body_params("ServiceCode", "addrp")
    request.add_body_params("DefaultCity", "杭州市")
    request.add_body_params("AcceptLanguage", "zh-CN")

    # 发送请求
    response = client.do_action_with_exception(request)

    # 处理请求结果
    resp_obj = json.loads(response.decode("utf-8"))
    print(resp_obj)


if __name__ == '__main__':
    one_id_address()

返回示例

{
	'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}}'
}

对话上下文地址推理

请求示例

import json

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


# 对话上下文推理服务测试


def address_inference():
    client = AcsClient(
        // 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
        // 本示例以将AccessKey ID和AccessKey Secret保存到环境变量为例说明。运行本代码示例之前,请先配置环境变量。
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
        "cn-hangzhou"
    )
    # 构建request
    request = CommonRequest()
  	# 设置域名
    request.set_domain("address-purification.cn-hangzhou.aliyuncs.com")
  	# 设置产品版本
    request.set_version("2019-11-18")
    # 设置产品
    request.set_product("address-purification")
  	# 指定服务
    request.set_location_service_code("addrp")
  	# 指定接口
    request.set_action_name("AddressInference")
  	# 访问方式
    request.set_method("POST")

    # 设置项目token
    request.add_body_params("AppKey", "Xcttmauvja0j")

    # 设置请求参数
    request.add_body_params("Text", "我在阿里巴巴门口被车撞了,滨江区的")
  	# 指定服务
    request.add_body_params("ServiceCode", "addrp")
    request.add_body_params("DefaultCity", "杭州市")
    request.add_body_params("AcceptLanguage", "zh-CN")

    # 发送请求
    response = client.do_action_with_exception(request)

    # 处理请求结果
    resp_obj = json.loads(response.decode("utf-8"))
    print(resp_obj)


if __name__ == '__main__':
    address_inference()

返回示例

{
	'RequestId': '8CF3720F-EDFD-1052-8679-73A1ADDEDD68',
	'Data': '{"address_inference":[{"address":"网商路699号","divcode":"330108","name":"阿里巴巴滨江园区","id":"B0FFG083SL","lxly":"30.1896,120.190371","std_addr":"浙江省 杭州市 滨江区 长河街道  网商路 699号  阿里巴巴滨江园区"},{"address":"文一西路969号","divcode":"330110","name":"阿里巴巴西溪A区","id":"B023B1D4BX","lxly":"30.278984,120.025746","std_addr":"浙江省 杭州市 余杭区 五常街道  文一西路 969号  阿里巴巴西溪A区"},{"address":"溪望路","divcode":"330110","name":"阿里巴巴西溪B区","id":"B0FFGUEOJ9","lxly":"30.275962,120.027276","std_addr":"浙江省 杭州市 余杭区 五常街道  溪望路   阿里巴巴西溪B区"}],"status":"OK","time_used":{"rt":{"dialog_extract":0.008522748947143555,"address_inference":0.47654223442077637},"start":1675414255.8609135}}'
}

高精度经纬度查询(楼栋级别)

请求示例

import json

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


# 高精度经纬度查询 服务调用 测试


def hp_geocode():
    client = AcsClient(
        // 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
        // 本示例以将AccessKey ID和AccessKey Secret保存到环境变量为例说明。运行本代码示例之前,请先配置环境变量。
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
        os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
        "cn-hangzhou"
    )
    # 构建request
    request = CommonRequest()
  	# 指定域名
    request.set_domain("address-purification.cn-hangzhou.aliyuncs.com")
  	# 指定产品版本
    request.set_version("2019-11-18")
  	# 指定产品
    request.set_product("address-purification")
  	# 指定服务
    request.set_location_service_code("addrp")
  	# 指定接口
    request.set_action_name("HpGeocode")
    request.set_method("POST")

    # 设置项目token
    request.add_body_params("AppKey", "Xcttmauvja0j")

    # 设置请求参数
    request.add_body_params("Text", "我在阿里巴巴门口被车撞了,滨江区的")
  	# 指定服务
    request.add_body_params("ServiceCode", "addrp")
    request.add_body_params("DefaultCity", "杭州市")
    request.add_body_params("AcceptLanguage", "zh-CN")

    # 发送请求
    response = client.do_action_with_exception(request)

    # 处理请求结果
    resp_obj = json.loads(response.decode("utf-8"))
    print(resp_obj)


if __name__ == '__main__':
    hp_geocode()

返回示例

{
	'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}}'
}