Python을 이용하여 JSON 응답 분석을 위한 bot 만들기
Automation 360 Python 스크립트를 이용하여 bot을 만들 Python 함수를 실행합니다. Python 함수를 이용하여 REST 웹 서비스 GET 요청으로부터 JSON 응답을 분석합니다.
전제 조건
bot을 만들려면 다음 사항이 갖춰져 있어야 합니다.
- Python 프로그래밍 언어에 대한 기초적인 이해.
- Automation Anywhere bots 생성에 관한 기초적인 경험.
- Python 3를 다운로드하여 설치합니다.
환경 변수에 경로를 추가하고 Python 설치 중에 Python 3.8을 경로에 추가를 선택합니다.
프로시저
- Control Room에 로그인합니다.
- 봇 > 내 봇으로 이용하여 봇 생성을 클릭합니다.
- 이름 필드에 PythonTutorial을 입력합니다.
- 생성 및 편집을 클릭합니다.
-
작업 창에서 변수를 클릭하여 다음과 같은 새 변수를 생성합니다.
- 이름 dResponse, 유형 > 사전 및 하위 유형 > 문자열.
- 이름 dRetrieveValue, 유형 > 사전 및 하위 유형 > 임의.
- 이름 sResponseBody, 유형 > 문자열.
- 이름 sFullName, 유형 > 문자열.
- 이름 sLocation, 유형 > 문자열.
- 이름 sTotalUserCount, 유형 > 문자열.
- 이름 nTotalUserCount, 유형 > 문자열.
- 이름 nCurrentUser, 유형 > 문자열.
- 이름 sCurrentUser, 유형 > 문자열.
-
작업 창에서, REST 웹 서비스 > 메소드 가져오기를 선택한 후, 이를 bot 플로우 시작 아래에 놓습니다.
-
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을 입력합니다.
-
작업 창에서 문자열 > 지정을 클릭합니다.
- 소스 문자열 변수 값 선택 필드에 $dResponse{Body}$를 입력합니다.
- 출력을 변수에 지정 드롭다운 목록에서 dResponse -문자열을 선택합니다.
-
작업 창에서 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 세션 필드에 기본값을 유지합니다.
- 실행할 함수 이름 입력 필드에 get_node_count를 입력합니다.
- 함수에 대한 인수 드롭다운 목록에서 dResponseBody - 문자열을 선택합니다.
- 출력을 변수에 지정 드롭다운 목록에서 sTotalUserCount -문자열을 선택합니다.
-
작업 창에서 사전 > 입력을 클릭합니다.
- 사전 변수 필드에서 dRetrieveValue -사전을 선택합니다.
- 이 키에 연계 필드에 응답을 입력합니다.
- 새 값 드롭다운 목록에서 dResponseBody - 문자열을 선택합니다.
- 이전 값을 변수에 지정 드롭다운 목록에서 프롬프트-지정 - 문자열을 선택합니다.
-
작업 창에서 문자열을 > 숫자로 변환을 클릭합니다.
- 문자열 입력 필드에 sTotalUserCount를 입력합니다.
- 출력을 변수에 지정 드롭다운 목록에서 nTotalUserCount - 숫자를 선택합니다.
-
작업 창에서 루프 > 루프를 클릭합니다.
- 루프 유형 > 반복자의 드롭다운 목록에서 n회를 선택합니다.
- 시간 필드에 $nTotalUserCount$를 입력합니다.
- 현재 값을 변수에 지정 드롭다운 목록에서 nCurrentUser - 숫자를 선택합니다.
-
작업 창에서 번호를 클릭하고 감소를 선택한 다음, 루프 작업 안에 놓습니다.
- 숫자 입력 필드에 $nCurrentUser$를 입력합니다.
- 감소 값 입력 필드에 1을 입력합니다.
- 출력을 변수에 지정 드롭다운 목록에서 nCurrentUser - 숫자를 선택합니다.
-
작업 창에서 숫자를 클릭하고 문자열로 변환을 선택한 다음, 이를 숫자 > 감소 아래 루프 작업 안에 놓습니다.
- 숫자 입력 필드에 $nCurrentUser$를 입력합니다.
- 소수점 뒤의 숫자 입력 필드에 0을 입력합니다.
- 출력을 변수에 지정 드롭다운 목록에서 dResponse -문자열을 선택합니다.
-
작업 창에서 사전 > 입력을 클릭하고 이를 루프 작업 안에 놓습니다.
- 사전 변수 필드에서 dRetrieveValue -사전을 선택합니다.
- 이 키와 연계 필드에 계수을 입력합니다.
- 새 값 드롭다운 목록에서 sCurrentUser - 문자열을 선택합니다.
- 이전 값을 변수에 지정 드롭다운 목록에서 프롬프트-지정 - 문자열을 선택합니다.
-
작업 창에서 Python 스크립트 > 함수 실행을 클릭하고 이를 루프 작업 안에 놓습니다.
- Python 세션 필드에 기본값을 유지합니다.
- 실행할 함수 이름 입력 필드에 get_full_name을 입력합니다.
- 함수에 대한 인수 드롭다운 목록에서 dResponseBody - 사전을 선택합니다.
- 출력을 변수에 지정 드롭다운 목록에서 dResponse -문자열을 선택합니다.
-
작업 창에서 Python 스크립트 > 함수 실행을 클릭하고 이를 루프 작업 안에 놓습니다.
- Python 세션 필드에 기본값을 유지합니다.
- 실행할 함수 이름 입력 필드에 get_location을 입력합니다.
- 함수에 대한 인수 드롭다운 목록에서 dResponseBody - 사전을 선택합니다.
- 출력을 변수 지정 드롭다운 목록에서 sLocation - 문자열을 선택합니다.
-
작업 창에서 메시지 상자를 클릭하고 이를 루프 작업 안에 놓습니다.
-
표시할 메시지 입력 필드에 다음 사항을 입력합니다.
Full Name: $sFullName$ Location: $sLocation$
- > 초 후 메시지 상자 닫기를 선택하고 5를 입력합니다.
-
표시할 메시지 입력 필드에 다음 사항을 입력합니다.
-
작업 창에서 Python 스크립트 > 닫기를 클릭하고 이를 루프 작업 밖에 놓습니다.
- Python 세션 필드에 기본값을 유지합니다.
-
저장을 클릭하여 bot을 저장한 다음 실행을 클릭합니다.
bot이 실행되고, 실행을 성공적으로 마치기 전에 각각 약 5초 동안 위치와 함께 사용자 5명의 전체 이름을 표시합니다.