如果物联应用开发(IoT Studio)平台提供的节点不能满足您的需求,您可以使用Python脚本节点,编写Python代码来实现功能逻辑。目前支持Python v2.7.9版本。且仅支持使用基本库和基本语法,不支持扩展库。

编码说明

在业务逻辑编辑页面的节点中,选择对应功能节点配置业务流,Python脚本配置页面如下图所示。

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')