Python을 이용하여 JSON 응답 분석
- 최종 업데이트2023/04/05
Python을 이용하여 JSON 응답 분석
Automation 360 Python 스크립트를 이용하여 봇을 만들 Python 함수를 실행합니다. Python 함수를 이용하여 REST 웹 서비스 GET 요청으로부터 JSON 응답을 분석합니다.
전제 조건
봇을 만들려면 다음 사항이 갖춰져 있어야 합니다.
- Python 프로그래밍 언어에 대한 기초적인 이해.
- Automation Anywhere Bot 생성에 관한 기초적인 경험.
- Python 3를 다운로드하여 설치합니다.
다음 중 하나를 수행합니다.
- Python을 설치하는 동안 경로에 Python x.xx 추가를 선택해야 합니다.
-
환경 변수에 경로를 추가합니다.
- Python을 설치하는 동안 경로에 Python x.xx 추가를 선택해야 합니다.
프로시저
- Control Room에 로그인합니다.
-
왼쪽 창에서 자동화를 클릭합니다.
이용 가능한 Bot 목록 및 양식이 표시됩니다.
-
Bot 생성 아이콘을 클릭합니다.
- 이름 필드에 PythonTutorial을 입력합니다.
- 생성 및 편집을 클릭합니다.
-
작업 창에서 변수를 클릭하여 다음과 같은 새 변수를 생성합니다.
- 이름 dResponse, 유형 > 사전 및 하위 유형 > 문자열.
- 이름 dRetrieveValue, 유형 > 사전 및 하위 유형 > 임의.
- 이름 dResponseBody, 유형 > 문자열.
- 이름 sFullName, 유형 > 문자열.
- 이름 sLocation, 유형 > 문자열.
- 이름 sTotalUserCount, 유형 > 문자열.
- 이름 nTotalUserCount, 유형 > 숫자.
- 이름 nCurrentUser, 유형 > 숫자.
- 이름 sCurrentUser, 유형 > 문자열.
- 이름 prompt-assignment, 유형 > 문자열.
-
작업 창에서 REST 웹 서비스 > 가져오기 방법를 선택한 후, 이를 봇 흐름의 시작 부분 아래에 놓습니다.
-
URI 필드에 다음을 입력합니다. https://randomuser.me/api/?results=5&inc=name,email,location&nat=us
이것은 임의의 사용자 세부 정보를 호출 애플리케이션으로 보내는 샘플 API입니다.
-
인증 모드 드롭다운 목록에서 인증 없음을 선택합니다.
- 출력을 변수에 지정 드롭다운 목록에서 dResponse -문자열 사전을 선택합니다.
-
URI 필드에 다음을 입력합니다. https://randomuser.me/api/?results=5&inc=name,email,location&nat=us
-
작업 창에서 문자열 > 할당 작업을 클릭하고 REST 웹 서비스 작업 아래의 캔버스로 드래그합니다.
-
소스 문자열 변수 값 선택 필드에 $dResponse{Body}$를 입력합니다.
- 대상 문자열 변수 선택 드롭다운 목록에서 dResponseBody - 문자열을 선택합니다.
-
소스 문자열 변수 값 선택 필드에 $dResponse{Body}$를 입력합니다.
-
작업 창에서 Python 스크립트 > 열기를 클릭하고 문자열 > 할당 작업 아래의 캔버스로 드래그합니다.
-
Python 필드에서 수동 입력을 선택합니다.
-
여기에 스크립트 입력 필드에 다음 코드를 복사하여 붙여 넣습니다.
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']
- Python 런타임 버전 필드에서 기본값을 3으로 유지합니다.
-
Python 필드에서 수동 입력을 선택합니다.
-
작업 창에서 Python 스크립트 > 함수 실행을 클릭하고 Python 스크립트 > 열기 작업 아래의 캔버스로 드래그합니다.
- Python 세션 필드에서 기본값을 유지합니다.
- 실행할 함수 이름 입력 필드에 get_node_count를 입력합니다.
-
함수에 대한 인수 드롭다운 목록에서 dResponseBody - 문자열을 선택합니다.
- 출력을 변수에 지정 드롭다운 목록에서 sTotalUserCount - 문자열을 선택합니다.
-
작업 창에서 사전 > Put을 클릭하고 Python 스크립트 > 열기 작업 아래의 캔버스로 드래그합니다.
- 사전 변수 필드에서 dRetrieveValue -Dictionary를 선택합니다.
- 이 키와 연결 필드에 response를 입력합니다.
- 새 값 드롭다운 목록에서 dResponseBody - 문자열을 선택합니다.
-
이전 값을 변수에 지정 드롭다운 목록에서 prompt-assignment - 문자열을 선택합니다.
-
작업 창에서 문자열 > 숫자로 변환을 클릭하고 사전 > Put 작업 아래의 캔버스로 드래그합니다.
- 문자열 입력 필드에 $sTotalUserCount$를 입력합니다.
-
출력을 변수에 지정 드롭다운 목록에서 nTotalUserCount - 숫자를 선택합니다.
-
작업 창에서 루프 > 루프를 클릭합니다.
- 루프 유형 > 반복자의 드롭다운 목록에서 n회를 선택합니다.
- 시간 필드에 $$nTotalUserCount$를 입력합니다.
-
현재 값을 변수에 지정 드롭다운 목록에서 nCurrentUser - 숫자를 선택합니다.
-
작업 창에서 숫자를 클릭하고 감소를 선택한 다음, 루프 작업 안에 놓습니다.
- 수 입력 필드에 $nCurrentUser$를 입력합니다.
- 감소 값 입력 필드에 1을 입력합니다.
-
출력을 변수에 지정 드롭다운 목록에서 nCurrentUser - 숫자를 선택합니다.
-
작업 창에서 숫자를 클릭하고 To 문자열을 선택한 다음, 이를 숫자 > 감소 아래 루프 작업 안에 놓습니다.
- 숫자 입력 필드에 $nCurrentUser$를 입력합니다.
- 소수점 이하 수 입력 필드에 0을 입력합니다.
-
출력을 변수에 지정 드롭다운 목록에서 sCurrentUser - 문자열을 선택합니다.
-
작업 창에서 사전 > Put을 클릭하고 이를 루프 작업 안에 놓습니다.
- 사전 변수 필드에서 dRetrieveValue -Dictionary를 선택합니다.
- 이 키와 연결 필드에 count를 입력합니다.
- 새 값 드롭다운 목록에서 sCurrentUser - 문자열을 선택합니다.
-
이전 값을 변수에 지정 드롭다운 목록에서 prompt-assignment - 문자열을 선택합니다.
-
작업 창에서 Python 스크립트 > 함수 실행을 클릭하고 이를 루프 작업 안에 놓습니다.
- Python 세션 필드에서 기본값을 유지합니다.
- 실행할 함수 이름 입력 필드에 get_full_name를 입력합니다.
- 함수에 대한 인수 드롭다운 목록에서 dRetrieveValue - 사전을 선택합니다.
-
출력을 변수에 지정 드롭다운 목록에서 sFullName - 문자열을 선택합니다.
-
작업 창에서 Python 스크립트 > 함수 실행을 클릭하고 이를 루프 작업 안에 놓습니다.
- Python 세션 필드에서 기본값을 유지합니다.
- 실행할 함수 이름 입력 필드에 get_location를 입력합니다.
- 함수에 대한 인수 드롭다운 목록에서 dRetrieveValue - 사전을 선택합니다.
-
출력을 변수에 지정 드롭다운 목록에서 sLocation - 문자열을 선택합니다.
-
작업 창에서 메시지 상자를 클릭하고 이를 루프 작업 안에 놓습니다.
-
표시할 메시지 입력 필드에 다음을 입력합니다.
Full Name: $sFullName$ Location: $sLocation$
-
메시지 상자 닫기까지 남은 시간 > 초를 선택하고 5를 입력합니다.
-
표시할 메시지 입력 필드에 다음을 입력합니다.
-
작업 창에서 Python 스크립트 > 닫기를 클릭하고 이를 루프 작업 밖에 놓습니다.
-
Python 세션 필드에서 기본값을 유지합니다.
-
Python 세션 필드에서 기본값을 유지합니다.
-
저장을 클릭하여
봇
을 저장한 다음 실행을 클릭합니다.
봇이 실행되고, 실행을 성공적으로 마치기 전에 각각 약 5초 동안 위치와 함께 사용자 5명의 전체 이름을 표시합니다.
Bot 오류 메시지가 표시되면 솔루션에 대한 다음 섹션을 참조하십시오. 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), 또는 An unexpected error occurred while executing Python Script command; Error code: bot.execution.error (A-People login required).