如果物联应用开发(IoT Studio)平台提供的节点不能满足您的需求,您可以使用Python脚本节点,编写Python代码来实现功能逻辑。目前支持Python v2.7.9版本。且仅支持使用基本库和基本语法,不支持扩展库。
编码说明
在业务逻辑编辑页面的节点中,选择对应功能节点配置业务流,Python脚本配置页面如下图所示。
注意 不支持使用Python代码修改已配置的节点变量、局部变量和全局变量的值。
在脚本中,可使用平台已内置的以下节点变量,调用需要的数据:
- payload,来自上个节点的输出数据。通过
payload.get('payload对象中的某个key')
来访问指定key的数据。例如
payload.get('productKey')
:调用上一个节点输出内容{productKey: '值'}
中的值。 - query,来自输入节点的数据。例如,HTTP请求节点的入参,设备触发节点的设备数据。通过
query.get('参数名')
来访问指定数据。例如
query.get('deviceName')
:调用API请求节点中入参deviceName的值。 - node,来自指定节点(
node.get('节点ID')
)的输出数据。通过node.get('节点ID').get('节点输出对象中的某个key')
来访问指定key的数据。例如
node.get('node_85***0').get('pageNum')
:调用节点node_85***0输出中pageNum的值。
如果需要调用某参数的子集,可按如下示例方式调用:
- 使用
payload.get('props').get('PM10').get('value')
,调用上一个节点props对象中属性PM10的值。 - 使用
query.get('deviceContext').get('deviceName')
,调用第一个节点的输出内容中deviceContext对象的deviceName变量值。
代码示例
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# @param {Object} payload 上一节点的输出
# @param {Object} node 指定某个节点的输出
# @param {Object} query 第一个节点的输出
# @param {Object} context { appKey, appSecret }
def main(payload, node, query, context):
print 'payload =', payload
print 'node =', node
print 'query =', query
print 'context =', context
#获取触发节点props对象中属性GeoLocation的值
return query.get('props').get('GeoLocation').get('value')