■FlaskによるWEB-APIの作成例

出展:
https://www.true-fly.com/entry/2022/08/01/080000


■FastAPIによるWEB-APIの作成例

出展:
https://qiita.com/yota_dev/items/ab8dea7f71c8a130d5bf
 ・・・飛びすぎて、記述内容理解できない

出展:
https://dev.classmethod.jp/articles/try_fastapi_intro/
 ・・・こちらのほうが少しわかりやすい


■アットマーク演算子=デコレータについて

出展:
https://magazine.techacademy.jp/magazine/38457#1

デコレータは以下の様に記述します。
@デコレータ名
def デコレートされる関数名:
    ・・・
デコレータは、関数を修飾するwrapperとも考えられます。
実際に、デコレータを使ったコードを書いてみましょう。
今回はI am hereという文字列を返すget_message関数を作成し、デコレータで機能を追加してみましょう。
追加する機能としては、シンプルにget_message関数の返す文字列I am hereを[]で囲ってみましょう。

サンプルコード
--------------------------------------------------
# デコレータ
def bird(func):
   def wrap(*args, **kwargs):
       rslt = func(*args, **kwargs)
       rslt = '[' + rslt + ']'  #文字列をカッコで囲う
       return rslt
   return wrap

# デコレートされる関数
@bird
def get_message():
   return 'I am here'

get_message()  #関数を実行し機能の追加を確認
--------------------------------------------------
実行結果
[I am here]

■FastAPIの特徴と課題点

出展:
https://zenn.dev/nameless_sn/articles/why_fastapi_development
【特徴】
・簡単にサーバを立ち上げられる
・Pythonに型定義を含められる
・非同期通信を簡単に実装できる
・拡張性が高い
・デフォルトでAPIドキュメントを出力できる
・機械学習との相性が抜群

■JSON の使い方

出展:
https://blog.kikagaku.co.jp/json#:~:text=Python%EF%BC%9A3.8.10-,JSON%20%E3%81%A8%E3%81%AF,%E5%BA%83%E3%81%8F%E4%BD%BF%E3%82%8F%E3%82%8C%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82

・JSON ファイルの読み込み方
・JSON ファイルの確認
・辞書型から JSON 形式の文字列へ変換 (dumps)
・JSON 形式の文字列を辞書型に変換 (loads)
・JSON ファイルの書き出し (dump)
・pandas への変換

■JSON
出展:
https://products.sint.co.jp/topsic/blog/json

JSONとは「JavaScript Object Notation」の略で、「JavaScriptのオブジェクトの書き方を元にしたデータ定義方法」のことです。
JSONが登場する前まではXMLというデータ構造が主に使われていました。
XMLはHTMLの記法を元にしたデータ定義方法で、データ定義言語と呼ばれています。
HTMLと同じようにタグを使ってデータの構造を定義し、柔軟に記述できるので(XMLよりも前に使われていた)CSVよりも複雑な構造も扱えました。しかし、その分人間にとって直感的には理解し難いのが難点でした。

基本の書き方
JSONは {} の中にキーと値をコロンで区切って記述します。キーは必ずダブルクォーテーションで囲む必要があり、シングルクォーテーションだとエラーになります。
{“key” : “value”}

カンマで区切ると、キーと値の組み合わせを複数記述できます。
{“key1” : “value1”, “key2” : “value2”}

行数が多くなってくると読みにくくなってきます。その場合は改行とインデントを使いましょう。
{
    “key1” : “value1”,
    “key2” : “value2”,
    “key3” : “value3”
}

JSONが対応しているデータ型
JSONは次のデータ型に対応しています。

文字列はダブルクォーテーション(“)、バックスラッシュ(\)以外の文字であればなんでも使用できます(もちろん日本語もOK)。

{“name” : “tanaka”}
数値
数値はダブルクォーテーションで囲みません。ダブルクォーテーションで囲むと文字列扱いになるので注意が必要です。

{“id”, 1}
null
nullは全て小文字で指定します。

{“id” : null}
bool値
bool値(true or false)の指定も可能です。こちらも数値と同じくダブルクォーテーションは必要ありません。

{“a” : true, “b” : false}
オブジェクト
オブジェクトの中にオブジェクトを入れることもできます。これを「ネストする」と言います。ここまでくるとデータ構造っぽさが出てきます。

{
    "id": 1,
    "name": "tanaka",
    "attribute": {
        "gender": "male",
        "phone_number": "xxxxxxxxxxx",
        "birth": "1991/01/01"
    }
}

配列
オブジェクトの場合は {} を使いましたが、配列を使いたい場合は [] を使います。
配列内の要素はカンマで区切ることで複数入力できます。

{
    "id": 1,
    "name": "tanaka",
    "result": [
        87,
        83,
        71,
        59,
        91
    ]
}


■Python で XML を JSON に変換する その1

出展:
https://www.delftstack.com/ja/howto/python/python-xml-to-json/

XML 形式で保存されたデータがあり、それを JSON 形式に変換するとします。次の方法を使用して、Python で XML データを JSON に変換できます。
Python で xmltodict モジュールを使用して XML を JSON に変換する
Python には、データを obj 引数として受け取り、それを JSON 形式のストリームとしてシリアル化し、形式化されたデータを出力として返す json.dumps(obj) メソッドがあります。
obj 引数は、辞書、文字列、リスト、タプルなどにすることができます。json.dumps() メソッドは、データ型に従って obj を変換します。JSON オブジェクトが必要な場合と同様に、json.dumps() メソッドが辞書を JSON オブジェクトに変換するため、入力を辞書として提供する必要があります。リストまたはタプルタイプは JSON 配列に変換され、文字列タイプは JSON 文字列に変換されます。
xmltodict.parse() メソッドを使用して、XML データを Python 辞書データ型に変換できます。xmltodict.parse() メソッドは、XML 形式のデータを文字列として受け取り、データを解析して、出力を辞書として返します。
xmltodict.parse() メソッドを使用してデータを辞書に変換した後、json.dumps() メソッドを使用してデータを JSON オブジェクトに変換できます。
以下のサンプルコードは、Python で json.dumps() および xmltodict.parse() メソッドを使用して XML データを JSON に変換する方法を示しています。
ーーーーーーーーーーーーーーーーーーーーーーーー
import xmltodict
import json

dictionary = xmltodict.parse("""<note>
  <date>2021-03-07</date>
  <time>15:23</time>
  <to>Sara</to>
  <from>Khan</from>
  <msg>Let's meet this weekend!</msg>
</note>""")
json_object = json.dumps(dictionary) 
print(json_object)
ーーーーーーーーーーーーーーーーーーーーーーーー
・出力結果:
{"note": {"date": "2021-03-07", "time": "15:23", "to": "Sara", "from": "Khan", "msg": "Let's meet this weekend!"}}

■Python で XML を JSON に変換する その2

出展:
http://www.kmiura.net/archives/7480312.html

結論からすると、一発変換は困難だったので辞書型を挟んで2ステップ構成となる
1:XMLを辞書型へ変換
ーーーーーーーーーーーーーーーーー
# サンプルXMLファイル
xml = """
<employees>
    <person>
        <name value="Alice"/>
    </person>
    <person>
        <name value="Bob"/>
    </person>
</employees>
"""
dict = xmltodict.parse(xml)
ーーーーーーーーーーーーーーーーー
# 辞書型へのアクセス方法

dict['emploees']
dict['emploees']['person']


2:辞書型をJSONへ変換
ーーーーーーーーーーーーーーーーー
import json
result = json.dumps(result, indent=2)