Automation Anywhere ドキュメントを読んで確認する

Automation 360

コンテンツを閉じる

コンテンツ

コンテンツを開く

Python を使用して JSON のレスポンスを解析するための bot を構築

  • 更新済み: 2020/11/16
    • Automation 360 v.x
    • ビルド
    • RPA Workspace

Python を使用して JSON のレスポンスを解析するための bot を構築

Automation 360 Python スクリプトを使用して、bot を構築するための Python 関数を実行します。Python 関数を使用して、REST Web サービス GET リクエストからの JSON のレスポンスを解析します。

前提条件

bot を構築するには、以下があることを確認します:

  • Python のプログラミング言語に関する基本的な理解。
  • Automation Anywhere bots 作成に関する基本的な経験。
  • Python 3 をダウンロードしてインストールします。

    Python のダウンロード

    環境変数にパスを追加し、Python のインストール時に [Python 3.8 をパスに追加] を選択します。

手順

  1. Control Room にログインします。
  2. [Bot] > [マイ Bot] の順に移動して、[Bot を作成] アイコンをクリックします。
  3. [名前] フィールドに「PythonTutorial」と入力します。
  4. [作成&編集] をクリックします。
  5. [アクション] ウィンドウで、[変数] をクリックして、次の新しい変数を作成します。
    1. 名前「dResponse」、[タイプ] > [ディクショナリ][サブタイプ] > [文字列]
    2. 名前「dRetrieveValue」、[タイプ] > [ディクショナリ][サブタイプ] > [任意]
    3. 名前「sResponseBody」、[タイプ] > [文字列]
    4. 名前「sFullName」、[タイプ] > [文字列]
    5. 名前「sLocation」、[タイプ] > [文字列]
    6. 名前「sTotalUserCount」、[タイプ] > [文字列]
    7. 名前「nTotalUserCount」、[タイプ] > [数字]
    8. 名前「nCurrentUser」、[タイプ] > [数字]
    9. 名前「sCurrentUser」、[タイプ] > [文字列]
  6. [アクション] ウィンドウで、[REST Web サービス] > [GET メソッド] の順に選択し、 フローの [開始]bot の下に配置します。
    1. [URI] フィールドに、https://randomuser.me/api/?results=5&inc=name,email,location&nat=us と入力します。
      これはサンプル API で、呼び出しアプリケーションにランダムなユーザー詳細を返します。
    2. [認証モード] ドロップダウン リストで、[認証なし] を選択します。
    3. [出力を変数に割り当てる] ドロップダウン リストで、[dResponse - 文字列のディクショナリ] を選択します。
  7. [アクション] ウィンドウで、[文字列] > [割り当て] の順にクリックします。
    1. [ソース文字列変数値を選択] フィールドに、「$dResponse{Body}$」と入力します。
    2. [出力を変数に割り当てる] ドロップダウン リストで、[dResponseBody - 文字列] を選択します。
  8. [アクション] ウィンドウで、[Pythonスクリプト] > [開く] の順にクリックします。
    1. Python フィールドで、[手動入力] を選択します。
    2. [ここにスクリプトを入力] フィールドに、次のコードをコピーして貼り付けます。
      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. [Python ランタイム バージョン] フィールドは、デフォルト値 [3] のままにします。
  9. [アクション] ウィンドウで、[Pythonスクリプト] > [関数を実行] の順にクリックします。
    1. [Python セッション] フィールドは、[デフォルト] のままにします。
    2. [実行する関数の名前を入力] フィールドに、「get_node_count」と入力します。
    3. [関数への引数] ドロップダウン リストで、[dResponseBody - 文字列] を選択します。
    4. [出力を変数に割り当てる] ドロップダウン リストで、[sTotalUserCount - 文字列] を選択します。
  10. [アクション] ウィンドウで、[ディクショナリ] > [書き込み] の順にクリックします。
    1. [ディクショナリ変数] フィールドで、[dRetrieveValue - ディクショナリ] を選択します。
    2. [このキーに関連付ける] フィールドに、「response」と入力します。
    3. [新しい値] ドロップダウン リストで、[dResponseBody - 文字列] を選択します。
    4. [前の値を変数に割り当てる] ドロップダウン リストで、[プロンプト割当 - 文字列] を選択します。
  11. [アクション] ウィンドウで、[文字列] > [数字] の順にクリックします。
    1. [文字列を入力] フィールドに、「sTotalUserCount」と入力します。
    2. [出力を変数に割り当てる] ドロップダウン リストで、[nTotalUserCount - 数字] を選択します。
  12. [アクション] ウィンドウで、[ループ] > [ループ] の順にクリックします。
    1. [ループ タイプ] > [反復子] で、ドロップダウン リストから [n 回] を選択します。
    2. [回数] フィールドに、「$nTotalUserCount$」と入力します。
    3. [変数に現在の値を割り当てる] ドロップダウン リストで、[nCurrentUser - 数字] を選択します。
  13. [アクション] ウィンドウで、[数字] をクリックし、[デクリメント] を選択して、[ループ] アクション内に配置します。
    1. [数字を入力] フィールドに、「$nCurrentUser$」と入力します。
    2. [デクリメント値を入力] フィールドに、「1」と入力します。
    3. [変数に出力を割り当てる] ドロップダウン リストで、[nCurrentUser - 数字] を選択します。
  14. [アクション] ウィンドウで、[数字] をクリックし、[文字列] を選択して、[数字] > [デクリメント] の下の [ループ] アクション内に配置します。
    1. [数字を入力] フィールドに、「$nCurrentUser$」と入力します。
    2. [小数点以下の桁数を入力] フィールドに、「0」と入力します。
    3. [出力を変数に割り当てる] ドロップダウン リストで、[sCurrentUser - 文字列] を選択します。
  15. [アクション] ウィンドウで、[ディクショナリ] > [書き込み] の順にクリックし、[ループ] アクション内に配置します。
    1. [ディクショナリ変数] フィールドで、[dRetrieveValue - ディクショナリ] を選択します。
    2. [このキーに関連付ける] フィールドに、「count」と入力します。
    3. [新しい値] ドロップダウン リストで、[sCurrentUser - 文字列] を選択します。
    4. [前の値を変数に割り当てる] ドロップダウン リストで、[プロンプト割当 - 文字列] を選択します。
  16. [アクション] ウィンドウで、[Python スクリプト] > [関数を実行] の順にクリックし、[ループ] アクション内に配置します。
    1. [Python セッション] フィールドは、[デフォルト] のままにします。
    2. [実行する関数の名前を入力] フィールドに、「get_full_name」と入力します。
    3. [関数への引数] ドロップダウン リストで、[dRetrieveValue - ディクショナリ] を選択します。
    4. [出力を変数に割り当てる] ドロップダウン リストで、[sFullName - 文字列] を選択します。
  17. [アクション] ウィンドウで、[Python スクリプト] > [関数を実行] の順にクリックし、[ループ] アクション内に配置します。
    1. [Python セッション] フィールドは、[デフォルト] のままにします。
    2. [実行する関数の名前を入力] フィールドに、「get_location」と入力します。
    3. [関数への引数] ドロップダウン リストで、[dRetrieveValue - ディクショナリ] を選択します。
    4. [出力を変数に割り当てる] ドロップダウン リストで、[sLocation - 文字列] を選択します。
  18. [アクション] ウィンドウで、[メッセージ ボックス] をクリックし、[ループ] アクション内に配置します。
    1. [表示するメッセージを入力] フィールドに、次を入力します。
      Full Name: $sFullName$ Location: $sLocation$
    2. 秒後にメッセージ > ボックスを閉じる を選択し、「5」と入力します。
  19. [アクション] ウィンドウで、[Python スクリプト] > [閉じる] の順にクリックし、[ループ] アクション外に配置します。
    1. [Python セッション] フィールドは、[デフォルト] のままにします。
  20. [保存] をクリックして bot を保存し、[実行] をクリックします。
    bot が起動し、5 つの完全なユーザー名と場所をそれぞれ約 5 秒間表示し、その後、実行が完了します。
フィードバックを送る