JSON, Dict, Web API の練習 (P)

練習問題は、以下のステップを処理していきましょう。

問題 A

成績データをまねた JSON ファイルを読み込んで、dict にしてから、いろいろデータ処理してみましょう。 どちらかというと、dict に慣れる練習ですね。

  1. json_test/test_data_gen.py に演習用サンプルデータ生成器を置いておきます。
  • 6行目INIT_SEED を各自変更してください。
  • 実行すると、json_test directory に test_input.json というファイルができるはず。こんな感じ。ただ、中身は各自で変わるはず.
{
  "student0_LGl": {
    "数学": 78,
    "英語": 88,
    "物理": 84,
    "化学": 68,
    "生物": 64
  },
  ...
  1. 上記 JSON ファイルを読み込んで dict に変換し print(dict) してみましょう。
  2. 学生 ID 一覧を表示してください。こんな感じ: ['student0_LGl', 'student1_nFE', 'student2_Ver', ... ]
  3. 各科目の受験者数を dict 形式で出力してみましょう。こんな感じ: {'数学': 10, '英語': 10, '物理': 7, '化学': 7, '生物': 3}
  4. 各科目の合計点と受験者数、平均点を dict 形式で出力してみましょう。こんな感じ {'数学': {'num': 10, 'total': 743, 'average': 74.3}, '英語: ...
  5. 各学生の平均点も、一応出しておきましょう。こんな感じ。 {'student0_LGl': 76.4, 'student1_nFE': 76.33333333333333, ...

問題B

上記情報を表示する簡易 Web server を作ってみました。 webserver_test/test_server2.py を実行すると、以下の情報がアクセスできます。(10/23 修正)

  • http://localhost:18061/students で、学生 ID 一覧が取得可能 (list)
  • http://localhost:18061/scores/<studentID> で、学生 ID に対応する成績が取得可能 (dict)

上記 Web API を介して、学生一覧を取得し、その後、各学生の成績を取得表示するプログラムを作成しましょう。