Python を使用して JSON のレスポンスを解析するための bot を構築
Automation 360 Python スクリプトを使用して、bot を構築するための Python 関数を実行します。Python 関数を使用して、REST Web サービス GET リクエストからの JSON のレスポンスを解析します。
前提条件
bot を構築するには、以下があることを確認します:
- Python のプログラミング言語に関する基本的な理解。
- Automation Anywhere bots 作成に関する基本的な経験。
- Python 3 をダウンロードしてインストールします。
環境変数にパスを追加し、Python のインストール時に [Python 3.8 をパスに追加] を選択します。
手順
- Control Room にログインします。
- [Bot] > [マイ Bot] の順に移動して、[Bot を作成] アイコンをクリックします。
- [名前] フィールドに「PythonTutorial」と入力します。
- [作成&編集] をクリックします。
-
[アクション] ウィンドウで、[変数] をクリックして、次の新しい変数を作成します。
- 名前「dResponse」、[タイプ] > [ディクショナリ]、[サブタイプ] > [文字列]。
- 名前「dRetrieveValue」、[タイプ] > [ディクショナリ]、[サブタイプ] > [任意]。
- 名前「sResponseBody」、[タイプ] > [文字列]。
- 名前「sFullName」、[タイプ] > [文字列]。
- 名前「sLocation」、[タイプ] > [文字列]。
- 名前「sTotalUserCount」、[タイプ] > [文字列] 。
- 名前「nTotalUserCount」、[タイプ] > [数字]。
- 名前「nCurrentUser」、[タイプ] > [数字]。
- 名前「sCurrentUser」、[タイプ] > [文字列]。
-
[アクション] ウィンドウで、[REST Web サービス] > [GET メソッド] の順に選択し、 フローの [開始]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}$」と入力します。
- [出力を変数に割り当てる] ドロップダウン リストで、[dResponseBody - 文字列] を選択します。
-
[アクション] ウィンドウで、[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 - ディクショナリ] を選択します。
- [このキーに関連付ける] フィールドに、「response」と入力します。
- [新しい値] ドロップダウン リストで、[dResponseBody - 文字列] を選択します。
- [前の値を変数に割り当てる] ドロップダウン リストで、[プロンプト割当 - 文字列] を選択します。
-
[アクション] ウィンドウで、[文字列] > [数字] の順にクリックします。
- [文字列を入力] フィールドに、「sTotalUserCount」と入力します。
- [出力を変数に割り当てる] ドロップダウン リストで、[nTotalUserCount - 数字] を選択します。
-
[アクション] ウィンドウで、[ループ] > [ループ] の順にクリックします。
- [ループ タイプ] > [反復子] で、ドロップダウン リストから [n 回] を選択します。
- [回数] フィールドに、「$nTotalUserCount$」と入力します。
- [変数に現在の値を割り当てる] ドロップダウン リストで、[nCurrentUser - 数字] を選択します。
-
[アクション] ウィンドウで、[数字] をクリックし、[デクリメント] を選択して、[ループ] アクション内に配置します。
- [数字を入力] フィールドに、「$nCurrentUser$」と入力します。
- [デクリメント値を入力] フィールドに、「1」と入力します。
- [変数に出力を割り当てる] ドロップダウン リストで、[nCurrentUser - 数字] を選択します。
-
[アクション] ウィンドウで、[数字] をクリックし、[文字列] を選択して、[数字] > [デクリメント] の下の [ループ] アクション内に配置します。
- [数字を入力] フィールドに、「$nCurrentUser$」と入力します。
- [小数点以下の桁数を入力] フィールドに、「0」と入力します。
- [出力を変数に割り当てる] ドロップダウン リストで、[sCurrentUser - 文字列] を選択します。
-
[アクション] ウィンドウで、[ディクショナリ] > [書き込み] の順にクリックし、[ループ] アクション内に配置します。
- [ディクショナリ変数] フィールドで、[dRetrieveValue - ディクショナリ] を選択します。
- [このキーに関連付ける] フィールドに、「count」と入力します。
- [新しい値] ドロップダウン リストで、[sCurrentUser - 文字列] を選択します。
- [前の値を変数に割り当てる] ドロップダウン リストで、[プロンプト割当 - 文字列] を選択します。
-
[アクション] ウィンドウで、[Python スクリプト] > [関数を実行] の順にクリックし、[ループ] アクション内に配置します。
- [Python セッション] フィールドは、[デフォルト] のままにします。
- [実行する関数の名前を入力] フィールドに、「get_full_name」と入力します。
- [関数への引数] ドロップダウン リストで、[dRetrieveValue - ディクショナリ] を選択します。
- [出力を変数に割り当てる] ドロップダウン リストで、[sFullName - 文字列] を選択します。
-
[アクション] ウィンドウで、[Python スクリプト] > [関数を実行] の順にクリックし、[ループ] アクション内に配置します。
- [Python セッション] フィールドは、[デフォルト] のままにします。
- [実行する関数の名前を入力] フィールドに、「get_location」と入力します。
- [関数への引数] ドロップダウン リストで、[dRetrieveValue - ディクショナリ] を選択します。
- [出力を変数に割り当てる] ドロップダウン リストで、[sLocation - 文字列] を選択します。
-
[アクション] ウィンドウで、[メッセージ ボックス] をクリックし、[ループ] アクション内に配置します。
-
[表示するメッセージを入力] フィールドに、次を入力します。
Full Name: $sFullName$ Location: $sLocation$
- 秒後にメッセージ > ボックスを閉じる を選択し、「5」と入力します。
-
[表示するメッセージを入力] フィールドに、次を入力します。
-
[アクション] ウィンドウで、[Python スクリプト] > [閉じる] の順にクリックし、[ループ] アクション外に配置します。
- [Python セッション] フィールドは、[デフォルト] のままにします。
-
[保存] をクリックして bot を保存し、[実行] をクリックします。
bot が起動し、5 つの完全なユーザー名と場所をそれぞれ約 5 秒間表示し、その後、実行が完了します。