###### tags: `Python勉強会` # 塩谷編集中_【50期】Python勉強会 第8回 :::info **<第8回Web会議日程>** 2023年06月21日(水)19:00から ::: ## 第7回 解説 ### ・課題 **現在、「<span style="color:blue">lambda_function.py</span>」は、以下のようにLINEで入力した場合、** **2行目をキー、3行目を値としたJSONファイルをS3に書き込みます。** ![](https://hackmd.io/_uploads/HJhh5w542.png) **上記に以下のようにLINEで入力した場合、S3のJSONファイルを読み込み、** **キーに対応する値をに応答する処理を追加してください** ![](https://hackmd.io/_uploads/BJqp9Pq4n.png) ### ・回答例 ```python= def s3_output(from_text): # 入力内容を改行コードで区切ってリスト型に格納 str = from_text.split('\n') # リストの要素数が1つより大きいの場合 if( len(str) > 1 ): # リストの2要素目(キー)がjson_dataに含まれる場合 if( str[1] in json_data ): # キーに対応する値を「to_text」に格納 to_text = json_data[str[1]] # リストの2要素目(キー)がjson_dataに含まれない場合 else: to_text = str[1] + 'は登録されていません' else: to_text = '2行目にキーを入力してください' return to_text ``` ### ・解説 「s3_output」関数実行時には、 「s3_function.py」内のjsonファイル読み込み処理実行済みのため、 変数「json_data」は以下となる ```python # json_data {'明日の予定': '仕事'} ``` 「from_text」には、LINEでの入力内容が以下の文字列として入る ```python # from_text '出力\n明日の予定' ``` このままでは処理できないため、「from_text」を改行コードで区切ってリスト型「str」に格納する ```python! str = from_text.split('\n') ``` 「str」は以下のようなリストの値となる ```python! # str ['出力', '明日の予定'] ``` リスト型「str」の2つ目の要素の値をキーとして、 辞書型「json_data」から値を取り出し、「to_text」に代入できていれば、OK ```python to_text = json_data[str[1]] ``` 上記に加え、想定外の入力があった場合の処理として、以下を追加 ・「出力」から始まる1行しか入力がなかった場合、「2行目にキーを入力してください」を返す ・2行目にs3のjsonにないキーが指定された場合、「 キー は登録されていません」を返す ------ ## 第8回 課題 まず、ホットペッパーAPIとは・・ ### 【ホットペッパーAPI】 :::info **【URL】ホットペッパーAPI** https://webservice.recruit.co.jp/doc/hotpepper/reference.html リクルートが提供するOPENAPI。ホットペッパーとホットペッパーBeautyの2種類のAPIが提供されている。 ホットペッパーAPIを利用するには利用申請が必要となる。 [リンク](https://webservice.recruit.co.jp/register/)より新規登録し、APIキーを取得します。 ::: ### ・Lambda レイヤー :::warning ・Lambdaレイヤーは、追加のコードまたはデータを含むことができる .zipファイルをまとめたもの。ライブラリ、カスタムランタイム、データ、または設定ファイルを含めることができる。 ・lambdaでサードパーティライブラリを使うにはLayerを使う必要があり、AWS Lambda上でもサードパーティー製のライブラリを使うことができる。 ・Lambdaは標準ライブラリしか使えず、外部モジュールを使用するにはインストールしなければならない。 また、ファイルをAWSにアップロードすると、関数で利用できる ::: ※今回は。。。 :::