Py初めてのPython

Day 3リスト・辞書(まとめて扱う)=AIとの接点

なぜ重要か: AIの入出力(JSON)は辞書とリストでできている

AIやAPIがやり取りするJSONの正体が辞書とリストであることを理解する。

JSONとは何か

AIのAPIや多くのWebサービスは、データを JSON という形式でやり取りします。JSON(ジェイソン)は「JavaScript Object Notation」の略で、プログラム同士がデータを受け渡すための共通フォーマットです。難しく聞こえますが、見た目は今まで学んだ辞書とリストのミックスそのものです。

JSON
{
  "model": "gpt-example",
  "choices": [
    { "index": 0, "message": { "role": "assistant", "content": "こんにちは" } }
  ],
  "usage": { "total_tokens": 42 }
}
AIの応答の一例(構造を示すためのサンプル。実際のフィールド名はサービスごとに異なる)

この { } は辞書、[ ] はリストです。つまりJSONを読むとは、辞書とリストのネストを読むことに他なりません。Day3の前半をやったあなたは、もうこれを読む準備ができています。

なぜこの回が一番大事か

AIを使う実務では、送るデータも返ってくるデータもほぼJSONです。JSONが辞書とリストだと分かっていれば、AIの出力から欲しい値を自分で取り出せます。ここが「AIを使う人」と「AIに使われて終わる人」の分かれ目です。

JSONと辞書・リストの対応

  • JSONの { } はPythonの辞書に対応する
  • JSONの [ ] はPythonのリストに対応する
  • 文字列は " " で囲む(Pythonでも同じ)
  • true / false / null はPythonでは True / False / None になる

見た目は似ているが同じではない

JSONとPythonの辞書は見た目がそっくりですが別物です。JSONは文字列(テキスト)で、Pythonで扱うには辞書に変換する必要があります。この変換を json ライブラリが担当します。次のレッスンで実際に取り出します。

PYTHON
import json

text = '{"name": "田中", "age": 28}'  # これは文字列(JSON)
data = json.loads(text)               # 辞書に変換
print(data["name"])                   # 田中 (もう辞書として扱える)
json.loads で JSON文字列 を Python辞書 に変換する

loads は「load string(文字列から読み込む)」の意味です。逆に辞書をJSON文字列に変換するときは json.dumps を使います。今は「JSONは文字列、変換すれば辞書」とだけ押さえれば十分です。

AIにはこう聞く

APIのドキュメントを読むのがつらいときは、「このAPIが返すJSONの例と、各フィールドの意味を初心者向けに説明して」とAIに頼むと理解が早いです。ただし返答のフィールド名が実物と一致するかは、必ず本物のレスポンスで確認してください。AIは構造を推測で埋めることがあります。

読んでも腑に落ちない所は、AIに噛み砕いてもらいましょう。

理解度チェック

答えられれば、面接で説明できる状態に一歩近づきます。

Q1

JSONの中の { } と [ ] は、Pythonのどのデータ型に対応しますか。

Q2

JSON文字列をPythonの辞書に変換するときに使うものはどれですか。

Q3

「JSONが読めることがAI時代に重要」と言われるのはなぜか、あなたの言葉で説明してください。

記述式です。まず自分の言葉で答えを考えてから、模範解答を開いて自己採点してください。