Uso de Python para analizar la respuesta JSON
- Última actualización2023/04/05
Uso de Python para analizar la respuesta JSON
Utilice la Automation 360 secuencia de comandos Python para ejecutar las funciones de Python para crear un bot. Utilice las funciones de Python para analizar la respuesta JSON de una solicitud OBTENER de REST Web Services.
Antes de empezar
Asegúrese de tener lo siguiente para compilar el bot:
- Comprensión básica del lenguaje de programación Python.
- Experiencia básica en la creación de Automation Anywhere bots.
- Descargue e instale Python 3.
Realice cualquiera de las opciones siguientes:
- Durante la instalación de Python, asegúrese de seleccionar Agregar Python x.xx a RUTA.
-
Agregue una ruta a la variable de entorno.
- Durante la instalación de Python, asegúrese de seleccionar Agregar Python x.xx a RUTA.
Procedimiento
- Inicie sesión en el Control Room.
-
En el panel izquierdo, haga clic en Automatización.
Se muestra la lista de formularios y bots disponibles.
-
Haga clic en el ícono Crear un bot.
- En el campo Nombre, introduzca PythonTutorial.
- Haga clic en Crear y editar.
-
En el panel Acciones, haga clic en Variables para crear las siguientes nuevas variables:
- Nombre dResponse, Tipo > Diccionario y Subtipo > Cadena.
- Nombre dRetrieveValue, Tipo > Diccionario y Subtipo > Cualquiera.
- Nombre dResponseBody, Tipo > Cadena.
- Nombre sFullName, Tipo > Cadena.
- Nombre sLocation, Tipo > Cadena.
- Nombre sTotalUserCount, Tipo > Cadena.
- Nombre nTotalUserCount, Tipo > Número.
- Nombre nCurrentUser, Tipo > Número.
- Nombre sCurrentUser, Tipo > Cadena.
- Nombre prompt-assignment, Tipo > Cadena.
-
En el panel Acciones, seleccione Servicios web REST > Método Get y colóquelo debajo de Inicio del flujo del bot.
-
En el campo URI, ingrese https://randomuser.me/api/?results=5&inc=name,email,location&nat=us.
Esta es una API de muestra que devuelve detalles de usuario aleatorios a la aplicación que llama.
-
En la lista desplegable Modo de autenticación, seleccione Sin autenticación.
- En la lista desplegable Asignar la salida a una variable, seleccione dResponse - Diccionario de cadenas.
-
En el campo URI, ingrese https://randomuser.me/api/?results=5&inc=name,email,location&nat=us.
-
En el panel Acciones, haga clic en la acción Cadena > Asignar y arrástrela al lienzo debajo de la acción Servicios Web REST.
-
En el campo Seleccionar el valor de variable de cadena de origen, ingrese $dResponse{Body}$.
- En la lista desplegable Seleccionar la variable de cadena de destino, seleccione dResponseBody - Cadena.
-
En el campo Seleccionar el valor de variable de cadena de origen, ingrese $dResponse{Body}$.
-
En el panel Acciones, haga clic en Secuencia de comandos Python > Abrir y arrástrela al lienzo debajo de la acción Cadena > Asignar.
-
En el campo Python, seleccione Entrada manual.
-
Copie y pegue el siguiente código en el campo Introducir script aquí.
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']
- En el campo Versión de tiempo de ejecución de Python, conserve el valor predeterminado como 3.
-
En el campo Python, seleccione Entrada manual.
-
En el panel Acciones, haga clic en Secuencia de comandos Python > Ejecutar función y arrástrela al lienzo debajo de la acción Secuencia de comandos Python > Abrir.
- En el campo Sesión de Python, conserve Predeterminado.
- En el campo Ingresar el nombre de la función que se ejecutará, ingrese get_node_count.
-
En la lista desplegable Argumentos a la función, seleccione dResponseBody - Cadena.
- En la lista desplegable Asignar la salida a una variable, seleccione sTotalUserCount - Cadena.
-
En el panel Acciones, haga clic en Diccionario > Colocar y arrástrela al lienzo debajo de la acción Secuencia de comandos Python > Abrir.
- En el campo Variable de diccionario, seleccione dRetrieveValue -Diccionario.
- En el campo Asociar a esta clave, ingrese response.
- En la lista desplegable Valor nuevo, seleccione dResponseBody - Cadena.
-
En la lista desplegable Asignar valor anterior a una variable, seleccione prompt-assignment - Cadena.
-
En el panel Acciones, haga clic en Cadena > A número y arrástrela al lienzo debajo de la acción Diccionario > Colocar.
- En el campo Ingresar la cadena, ingrese $sTotalUserCount$.
-
En la lista desplegable Asignar la salida a una variable, seleccione nTotalUserCount - Número.
-
Desde el panel Acciones, haga clic en Bucle > Bucle.
- En la Tipo de bucle > Iterador, seleccione Durante n veces desde la lista desplegable.
- En el campo veces, ingrese $nTotalUserCount$.
-
En la lista desplegable Asignar el valor actual a una variable, seleccione nCurrentUser - Número.
-
En el panel Acciones, haga clic en Número, seleccione Decrementar y colóquelo dentro de la acción Bucle.
- En el campo Ingresar número, ingrese $nCurrentUser$.
- En el campo Ingresar valor decreciente, ingrese 1.
-
En la lista desplegable Asignar salida a una variable, seleccione nCurrentUser - Número.
-
En el panel Acciones, haga clic en Número, seleccione A cadena y colóquela dentro de la acción Bucle, debajo de Número > Decrementar.
- En el campo Escribir un número, ingrese $nCurrentUser$.
- En el campo Escribir número de dígitos después de decimal, ingrese 0.
-
En la lista desplegable Asignar salida a una variable, seleccione sCurrentUser - Cadena.
-
En el panel Acciones, haga clic en Diccionario > Colocar y colóquelo dentro de la acción Bucle.
- En el campo Variable de diccionario, seleccione dRetrieveValue -Diccionario.
- En el campo Asociar a esta clave, ingrese count.
- En la lista desplegable Valor nuevo, seleccione sCurrentUser - Cadena.
-
En la lista desplegable Asignar valor anterior a una variable, seleccione prompt-assignment - Cadena.
-
En el panel Acciones, haga clic en Secuencia de comandos Python > Ejecutar función y colóquela dentro de la acción Bucle.
- En el campo Sesión de Python, conserve Predeterminado.
- En el campo Ingresar el nombre de la función que se ejecutará, ingrese get_full_name.
- En la lista desplegable Argumentos de la función, seleccione dRetrieveValue - Diccionario.
-
En la lista desplegable Asignar la salida a una variable, seleccione sFullName - Cadena.
-
En el panel Acciones, haga clic en Secuencia de comandos Python > Ejecutar función y colóquela dentro de la acción Bucle.
- En el campo Sesión de Python, conserve Predeterminado.
- En el campo Ingresar el nombre de la función que se ejecutará, ingrese get_location.
- En la lista desplegable Argumentos de la función, seleccione dRetrieveValue - Diccionario.
-
En la lista desplegable Asignar la salida a una variable, seleccione sLocation - Cadena.
-
En el panel Acciones, haga clic en Cuadro de mensaje y colóquelo dentro de la acción Bucle.
-
En el campo Escribir el mensaje para mostrar, escriba lo siguiente:
Full Name: $sFullName$ Location: $sLocation$
-
Seleccione Cerrar cuadro de mensaje después de > Segundos y escriba 5.
-
En el campo Escribir el mensaje para mostrar, escriba lo siguiente:
-
En el panel Acciones, haga clic en Secuencia de comandos Python > Cerrar y colóquelo fuera de la acción Bucle.
-
En el campo Sesión de Python, conserve Predeterminado.
-
En el campo Sesión de Python, conserve Predeterminado.
-
Haga clic en Guardar para guardar su bot y, luego, haga clic en Ejecutar.
El bot se ejecuta y muestra cinco nombres de usuario completos con ubicaciones durante aproximadamente 5 segundos cada uno antes de completar su ejecución exitosa.
Si aparece un mensaje de error de bot, consulte las siguientes secciones para obtener una solución: 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) o An unexpected error occurred while executing Python Script command; Error code: bot.execution.error (A-People login required).