阅读和查看 Automation Anywhere 文档

Automation Anywhere Automation 360

关闭内容

内容

打开内容

使用 Python 构建 bot 以解析 JSON 响应

  • 已更新:2020/11/16

    使用 Python 构建 bot 以解析 JSON 响应

    使用 Automation 360 Python 脚本执行 Python 功能以构建 bot。使用 Python 函数从 REST Web 服务 GET 请求解析 JSON 响应。

    先决条件

    确保您具备以下功能以构建 bot

    • 对 Python 编程语言的基本理解。
    • 创建 Automation Anywhere bots 的基本经验。
    • 下载并安装 Python 3。

      下载 Python

      在 Python 安装期间,向环境变量添加路径,然后选择将 Python 3.8 添加到 PATH

    过程

    1. 登录到 Control Room
    2. 转到机器人 > 我的机器人,然后单击创建机器人图标。
    3. 名称字段中,输入 PythonTutorial
    4. 单击创建和编辑
    5. 在操作窗格中,单击变量以创建以下新变量:
      1. 名称 dResponse类型 > 字典子类型 > 字符串
      2. 名称 dRetrieveValue类型 > 字典子类型 > 任意
      3. 名称 sResponseBody类型 > 字符串
      4. 名称 sFullName类型 > 字符串
      5. 名称 sLocation类型 > 字符串
      6. 名称 sTotalUserCount类型 > 字符串
      7. 名称 nTotalUserCount类型 > 数字
      8. 名称 nCurrentUser类型 > 数字
      9. 名称 sCurrentUser类型 > 字符串
    6. 从操作窗格中,选择 REST Web 服务 > GET 方法,并将其置于 流程的开始bot下方。
      1. URI 字段中,输入 https://randomuser.me/api/?results=5&inc=name,email,location&nat=us
        这是一个示例 API,可将随机用户详细信息返回给调用应用程序。
      2. 验证模式下拉列表中,选择无验证
      3. 将输出分配给变量下拉列表中,选择 dResponse -Dictionary of Strings
    7. 从操作窗格中,单击字符串 > 分配
      1. 选择源字符串变量值字段中,输入 $dResponse{Body}$
      2. 将输出分配给变量下拉列表中,选择 dResponseBody - String
    8. 从操作窗格中,单击 Python 脚本 > 打开
      1. Python 字段中,选择手动输入
      2. 将以下代码复制并粘贴到在此输入脚本字段。
        import json
        
        def get_node_count(response):
            #parse response as json
            response_dict=json.loads(response)
            # Create list from JSON body
            response_body = response_dict['results']
            #return the count of entries in JSON body as string
            lengthasstring = str(len(response_body))
            return lengthasstring
        
        def get_full_name(dictRequest):
            itemCount = int(dictRequest['count'])
            #parse response as json
            response_dict=json.loads(dictRequest['response'])
            # Create list from JSON body
            response_body = response_dict['results']
            #Extract values to return
            return response_body[itemCount]['name']['first'] + " " + response_body[itemCount]['name']['last'] 
        
        def get_location(dictRequest):
            itemCount = int(dictRequest['count'])
            #parse response as json
            response_dict=json.loads(dictRequest['response'])
            # Create list from JSON body
            response_body = response_dict['results']
            #Extract values to return
            return response_body[itemCount]['location']['city'] + ", " + response_body[itemCount]['location']['state']
      3. Python 运行时版本字段中,保留默认值为 3
    9. 从操作窗格中,单击 Python 脚本 > 执行功能
      1. Python 会话字段中,保留默认值
      2. 输入要执行的函数的名称字段中,输入 get_node_count
      3. 函数参数下拉列表中,选择 dResponseBody - String
      4. 将输出分配给变量下拉列表中,选择 sTotalUserCount - String
    10. 从操作窗格中,单击字典 > Put
      1. 字典变量字段中,选择 dRetrieveValue -Dictionary
      2. 关联到此键字段中,输入响应
      3. 新值下拉列表中,选择 dResponseBody - String
      4. 为变量分配上一个值下拉列表中,选择 prompt-assignment - String
    11. 从操作窗格中,单击字符串 > 至数字
      1. 输入字符串字段中,输入 sTotalUserCount
      2. 将输出分配给变量下拉列表中,选择 nTotalUserCount - Number
    12. 从操作窗格中,单击循环 > 循环
      1. 循环类型 > 迭代器中,从下拉列表中选择 n 次
      2. 时间字段中,输入 $nTotalUserCount$
      3. 将当前值分配给变量下拉列表中,选择 nCurrentUser - Number
    13. 从操作窗格中,单击数字,选择减量并将其放入循环操作中。
      1. 输入号码字段中,输入 $nCurrentUser$
      2. 输入减量值字段中,输入 1
      3. 将输出分配给变量下拉列表中,选择 nCurrentUser - Number
    14. 从操作窗格中,单击数字,选择至字符串并将其放入循环操作中,位于数字 > 减量下方。
      1. 输入号码字段中,输入 $nCurrentUser$
      2. 输入小数点后的位数字段中,输入 0
      3. 将输出分配给变量下拉列表中,选择 sCurrentUser - String
    15. 从操作窗格中,单击字典 > Put并将其放入循环操作中。
      1. 字典变量字段中,选择 dRetrieveValue -Dictionary
      2. 关联到此键字段中,输入计数
      3. 新值下拉列表中,选择 sCurrentUser - String
      4. 为变量分配上一个值下拉列表中,选择 prompt-assignment - String
    16. 从操作窗格中,单击 Python 脚本 > 执行函数并将其放入循环操作中。
      1. Python 会话字段中,保留默认值
      2. 输入要执行的函数的名称字段中,输入 get_full_name
      3. 函数参数下拉列表中,选择 dRetrieveValue - Dictionary
      4. 将输出分配给变量下拉列表中,选择 sFullName - String
    17. 从操作窗格中,单击 Python 脚本 > 执行函数并将其放入循环操作中。
      1. Python 会话字段中,保留默认值
      2. 输入要执行的函数的名称字段中,输入 get_location
      3. 函数参数下拉列表中,选择 dRetrieveValue - Dictionary
      4. 将输出分配给变量下拉列表中,选择 sLocation - String
    18. 从操作窗格中,单击消息框并将其放入循环操作中。
      1. 输入要显示的消息字段中输入以下值:
        Full Name: $sFullName$ Location: $sLocation$
      2. 选择在以下 > 秒数后关闭消息框,输入 5
    19. 从操作窗格中,单击 Python 脚本 > 关闭并将其放在循环操作之外。
      1. Python 会话字段中,保留默认值
    20. 单击保存以保存您的 bot,然后单击运行
      bot 运行,显示五个完整的用户名及位置,每个用户名及位置大约显示 5 秒钟,然后成功完成执行。
    发送反馈