开发者可以通过Python SDK,调用物联网数据分析中生成的API。
步骤一:安装SDK
登录Python官方网站下载2.6.5及以上版本的Python,并按说明完成安装。
(可选)安装Python的包管理工具pip。访问pip官方网站下载pip安装包,并完成安装。
说明如果您已安装pip工具,请忽略此步骤。
安装IoT Python SDK。
以root权限,在开发环境中执行如下命令,安装IoT Python SDK。IoT Python SDK开源信息请参见aliyun-python-sdk-iot。
sudo pip install aliyun-python-sdk-core sudo pip install aliyun-python-sdk-iot
将IoT Python SDK相关文件引入到Python文件中。
from aliyunsdkcore.client import AcsClient from aliyunsdkcore.acs_exception.exceptions import ClientException from aliyunsdkcore.acs_exception.exceptions import ServerException from aliyunsdkcore.http import method_type from aliyunsdkiot.request.v20180120.InvokeDataAPIServiceRequest import InvokeDataAPIServiceRequest
步骤二:初始化SDK
参考如下内容,初始化SDK。
以下示例以华东2(上海:cn-shanghai)地域为例。您在设置时,需使用您自己的物联网平台地域。
accessKeyId = '<your accessKey>'
accessKeySecret = '<your accessSecret>'
client = client.AcsClient(accessKeyId, accessKeySecret, 'cn-shanghai')
其中,<your accessKey>为您账号的AccessKeyId,<your accessSecret>为AccessKeyId对应的AccessKeySecret。您可在阿里云官网控制台AccessKey管理中创建或查看您的AccessKey。
步骤三:发起调用
发起API调用示例如下。
request = InvokeDataAPIServiceRequest()
request.set_accept_format('json')
request.set_method(method_type.POST)
request.set_ApiSrn("your_ApiSrn")
request.set_Params([
{
"ParamName": "your_param_name",
"ParamValue": "your_param_value",
"ListParamValues":[],
"ListParamType": "VARCHAR"
}
])
response = client.do_action_with_exception(request)
print(response)
其中,部分参数按如下说明替换参数值。
参数 | 是否必选 | 说明 |
your_ApiSrn | 是 | API的资源定位符,请替换为您实际的API资源定位符。ApiSrn值的查询方法请参见如何使用数据服务。 |
ParamName | 否 | 待查询数据的请求参数名称,请将your_param_name替换为您实际的API的请求参数名称。 说明 如果API接口未配置请求参数,忽略该参数和ParamValue的配置。 |
ParamValue | 否 | 待查询数据的请求参数值,请将your_param_value替换为您实际的API的请求参数值。 |
ListParamValues | 是 | ARRAY类型的参数值列表。 说明
详情请参见本文下方完整调用示例。 |
ListParamType | 否 | ARRAY类型参数值的数据类型。目前仅支持VARCHAR、INTEGER、BIGINT、BOOLEAN、DECIMAL、TIMESTAMP。 |
完整调用示例
#!/usr/bin/env python
# coding=utf-8
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.acs_exception.exceptions import ClientException
from aliyunsdkcore.acs_exception.exceptions import ServerException
from aliyunsdkcore.http import method_type
from aliyunsdkiot.request.v20180120.InvokeDataAPIServiceRequest import InvokeDataAPIServiceRequest
accessKey = "LTAI0********Z0"
accessSecret = "vmlXLPTPt********CCvLUB"
client = AcsClient(accessKey, accessSecret, 'cn-shanghai')
request = InvokeDataAPIServiceRequest()
request.set_accept_format('json')
request.set_method(method_type.POST)
request.set_ApiSrn("acs:iot:*:172644********564:serveapi/****")
request.set_Params([
{
# Array类型参数
"ParamName": "name",
"ListParamValues": ["television"],
"ListParamType": "VARCHAR" # ListParamValues中值的具体数据类型
},
{
# 非Array类型参数,ListParamValues 需要赋空值
"ParamName": "pageNo",
"ParamValue": "0",
"ListParamValues": []
},
{
"ParamName": "pageSize",
"ParamValue": "10",
"ListParamValues": []
},
])
response = client.do_action_with_exception(request)
print(response)