Usando Python para analisar a resposta do JSON

Use o script de Python do Automation 360 para executar funções em Python para criar um bot. Use as funções em Python para analisar a resposta JSON de uma solicitação GET de serviços web REST.

Pré-requisitos

Certifique-se de ter o seguinte para criar o bot:

  • Compreensão básica da linguagem de programação Python.
  • Experiência básica com a criação de bots Automation Anywhere.
  • Baixar e instalar o Python 3.

    baixar Python

    Realize uma das seguintes opções:

    • Durante a instalação do Python, certifique-se de selecionar Adicionar Python x.xx ao PATH durante a instalação da Python.
      Instalar o Python
    • Adicione um caminho para a variável Ambiente.

Procedimento

  1. Faça login no Control Room.
  2. No painel da esquerda, clique em Automation (Automação).
    Uma lista de formulários e bots disponíveis é exibida.
  3. Clique no ícone Criar um bot.
    Criar um bot
  4. No campo Nome, digite PythonTutorial.
  5. Clique em Criar e editar.
  6. No painel Ações, clique em Variáveis para criar as seguintes novas variáveis:
    1. Nome dResponse, Tipo > Dicionário e Subtipo > String.
    2. Nome dRetrieveValue, Tipo > Dicionário e Subtipo > Qualquer.
    3. Nome dResponseBody, Tipo > String.
    4. Nome sFullName, Tipo > String.
    5. Nome sLocation, Tipo > String.
    6. Nome sTotalUserCount, Tipo > String.
    7. Nome nTotalUserCount, Tipo > Número.
    8. Nome nCurrentUser, Tipo > Número.
    9. Nome sCurrentUser, Tipo > String.
    10. Nome prompt-assignment, Tipo > String.
  7. No painel Ações, selecione REST Web Services > Método Get e coloque-o sob o Início do fluxo do bot.
    1. No campo URI, insira https://randomuser.me/api/?results=5&inc=name,email,location&nat=us.
      Essa é uma API de exemplo que retorna detalhes aleatórios do usuário para o aplicativo de chamada.
    2. Na lista suspensa Modo de autenticação, selecione Sem autenticação.

      python-rest-sample
    3. Na lista suspensa Atribuir a saída a uma variável, selecione dResponse – Dicionário de strings.
  8. A partir do painel de Ações, clique na ação String > Atribuir e arraste-a para dentro da tela abaixo da ação Serviços Web REST.
    1. No campo Selecionar o valor da variável da string de origem, insira $dResponse{Body}$.

      python-string-assign
    2. Na lista suspensa Selecione a variável string de destino, selecione dResponseBody – String.
  9. A partir do painel de Ações, clique em Roteiro Python > Aberto e arraste-a para dentro da tela abaixo da ação String > Atribuir.
    1. No campo Python, selecione Entrada manual.

      python-script-open
    2. No campo Inserir script aqui, copie e cole o código a seguir.
      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. No campo Versão do tempo de execução Python, mantenha o valor padrão como 3.
  10. A partir do painel de Ações, clique em Roteiro Python > Executar a função e arraste-a para dentro da tela abaixo da ação Roteiro Python > Aberto.
    1. No campo Sessão de Python, mantenha Padrão.
    2. No campo Inserir o nome da função a ser executada, insira get_node_count.
    3. Na lista suspensa Argumentos para a função, selecione dResponseBody – String.

      python-execute
    4. Na lista suspensa Atribuir a saída a uma variável, selecione sTotalUserCount – String.
  11. A partir do painel de Ações, clique em Dicionário > Colocar e arraste-a para dentro da tela abaixo da ação Roteiro Python > Abrir.
    1. No campo Variável do dicionário, selecione dRetrieveValue – Dicionário.
    2. No campo Associar a esta chave, insira response.
    3. Na lista suspensa Novo valor, selecione dResponseBody – String.
    4. Na lista suspensa Atribuir valor anterior a uma variável, selecione prompt-assignment – String.

      python-dict-open
  12. A partir do painel de Ações, clique em String > Para número e arraste-a para dentro da tela abaixo da ação Dicionário > Colocar.
    1. No campo Digite a string, insira $sTotalUserCount$.
    2. Na lista suspensa Atribuir a saída a uma variável, selecione sTotalUserCount - Número.
      python-string-tonum
  13. No painel Ações, clique em Loop > Loop.
    1. No Tipo de loop > Iterador, selecione Por n vezes na lista suspensa.
    2. No campo vezes, insira $nTotalUserCount$.
    3. Na lista suspensa Atribuir o valor atual a uma variável, selecione nCurrentUser - Número.
      python-loop
  14. No painel Ações, clique em Número, selecione Diminuição e coloque-a dentro da ação Loop.
    1. No campo Inserir número, digite $nCurrentUser$.
    2. No campo Inserir valor de diminuição, digite 1.
    3. Na lista suspensa Atribuir a saída a uma variável, selecione nCurrentUser - Número.
      python-num-decrement
  15. No painel Ações, clique em Número, selecione Em string e coloque-a dentro da ação Loop, abaixo de Número > Diminuição.
    1. No campo Inserir um número, digite $nCurrentUser$.
    2. No campo Inserir número de dígitos após decimal, digite 0.
    3. Na lista suspensa Atribuir a saída a uma variável, selecione sCurrentUser - String.
      python-num-tostring
  16. No painel Ações, clique em Dicionário > Colocar e coloque-a dentro da ação Loop.
    1. No campo Variável do dicionário, selecione dRetrieveValue – Dicionário.
    2. No campo Associar a esta chave, insira count.
    3. Na lista suspensa Novo valor, selecione sCurrentUser – String.
    4. Na lista suspensa Atribuir valor anterior a uma variável, selecione prompt-assignment – String.
      python-dict-put
  17. No painel Ações, clique em Script de Python > Executar função e coloque dentro da ação Loop.
    1. No campo Sessão de Python, mantenha Padrão.
    2. No campo Inserir o nome da função a ser executada, insira get_full_name.
    3. Na lista suspensa Argumentos para a função, selecione dRetrieveValue – Dicionário.
    4. Na lista suspensa Atribuir a saída a uma variável, selecione sFullName - String.
      python-script-execute
  18. No painel Ações, clique em Script de Python > Executar função e coloque dentro da ação Loop.
    1. No campo Sessão de Python, mantenha Padrão.
    2. No campo Inserir o nome da função a ser executada, insira get_location.
    3. Na lista suspensa Argumentos para a função, selecione dRetrieveValue – Dicionário.
    4. Na lista suspensa Atribuir a saída a uma variável, selecione sLocation - String.
      python-script-execute-location
  19. No painel Ações, clique em Caixa de mensagem e coloque-a dentro da ação Loop.
    1. No campo Inserir a mensagem a ser exibida, insira o seguinte:
      Full Name: $sFullName$ Location: $sLocation$
    2. Selecione Fechar caixa de mensagem após > Segundos, digite 5.
      python msgbox
  20. No painel Ações, clique em Script de Python > Fechar e coloque dentro da ação Loop.
    1. No campo Sessão de Python, mantenha Padrão.
      python close
  21. Clique em Salvar para salvar seu bot e, em seguida, clique em Executar.
    O bot é executado, exibindo cinco nomes de usuário completos com locais por aproximadamente 5 segundos cada antes de concluir sua execução.

Se receber uma mensagem Erro de bot, veja as seções seguintes para obter uma solução: Getting Bot Error while executing Python Script/Function (A-People login required), Getting Bot Error or True value in message box while executing Python Script (A-People login required), ou An unexpected error occurred while executing Python Script command; Error code: bot.execution.error (A-People login required).