Python get()メソッド完全ガイド – 辞書とリクエストの使い方を徹底解説
Pythonのget()メソッドは、辞書操作やHTTPリクエストにおいて非常に重要な機能です。この記事では、get()メソッドの基本的な使い方から応用例まで、初心者にもわかりやすく解説します。
目次
辞書のget()メソッド
基本的な使い方
辞書のget()メソッドは、キーに対応する値を安全に取得するために使用します。
# 基本的な使用例
user = {"name": "田中", "age": 30}
name = user.get("name") # "田中"
email = user.get("email") # None(存在しないキー)
デフォルト値の指定
キーが存在しない場合のデフォルト値を指定できます。
# デフォルト値を指定
user = {"name": "田中", "age": 30}
email = user.get("email", "未設定") # "未設定"
phone = user.get("phone", "000-0000-0000") # "000-0000-0000"
従来の方法との比較
# エラーが発生する可能性がある方法
try:
email = user["email"]
except KeyError:
email = "未設定"
# get()を使った安全な方法
email = user.get("email", "未設定")
requestsライブラリのget()関数
基本的なHTTPリクエスト
requests.get()を使ってWebAPIからデータを取得します。
import requests
# 基本的なGETリクエスト
response = requests.get("https://api.github.com/users/octocat")
data = response.json()
print(data.get("name")) # "The Octocat"
パラメータ付きリクエスト
import requests
# パラメータを指定してリクエスト
params = {"q": "python", "sort": "stars"}
response = requests.get("https://api.github.com/search/repositories", params=params)
repos = response.json()
ヘッダーの設定
import requests
# カスタムヘッダーでリクエスト
headers = {"User-Agent": "MyApp/1.0"}
response = requests.get("https://api.example.com/data", headers=headers)
実践的な使用例
設定ファイルの読み込み
# 設定値を安全に取得
config = {"host": "localhost", "port": 8080}
host = config.get("host", "127.0.0.1")
port = config.get("port", 3000)
debug = config.get("debug", False)
APIレスポンスの処理
import requests
def get_user_info(username):
url = f"https://api.github.com/users/{username}"
response = requests.get(url)
if response.status_code == 200:
data = response.json()
return {
"name": data.get("name", "名前未設定"),
"bio": data.get("bio", "自己紹介なし"),
"followers": data.get("followers", 0)
}
return None
user_info = get_user_info("octocat")
ネストした辞書の安全な取得
# 深い階層の辞書から値を取得
data = {
"user": {
"profile": {
"contact": {"email": "[email protected]"}
}
}
}
# 安全な取得方法
user = data.get("user", {})
profile = user.get("profile", {})
contact = profile.get("contact", {})
email = contact.get("email", "未設定")
エラー処理とベストプラクティス
requestsでのエラー処理
import requests
def safe_api_request(url):
try:
response = requests.get(url, timeout=5)
response.raise_for_status() # HTTPエラーをチェック
return response.json()
except requests.exceptions.RequestException as e:
print(f"リクエストエラー: {e}")
return None
data = safe_api_request("https://api.example.com/data")
if data:
value = data.get("key", "デフォルト値")
型チェックとバリデーション
def get_config_value(config, key, default=None, expected_type=None):
value = config.get(key, default)
if expected_type and not isinstance(value, expected_type):
return default
return value
# 使用例
config = {"timeout": "30", "debug": True}
timeout = get_config_value(config, "timeout", 10, int) # 10(型が違うため)
debug = get_config_value(config, "debug", False, bool) # True
パフォーマンスの考慮事項
辞書のget()メソッドの効率性
# 効率的: get()メソッドを使用
value = data.get("key", "default")
# 非効率: 複数回のキー検索
if "key" in data:
value = data["key"]
else:
value = "default"
requestsのセッション使用
import requests
# セッションを使って接続を再利用
session = requests.Session()
session.headers.update({"User-Agent": "MyApp/1.0"})
response1 = session.get("https://api.example.com/data1")
response2 = session.get("https://api.example.com/data2")
よくある間違いと注意点
Noneとデフォルト値の混同
# 注意: Noneも有効な値として扱われる
data = {"key": None}
value = data.get("key", "default") # None("default"ではない)
# 明示的にNoneをチェックする場合
value = data.get("key")
if value is None:
value = "default"
HTTPステータスコードの確認不足
import requests
# 悪い例: ステータスコードを確認しない
response = requests.get("https://api.example.com/data")
data = response.json() # エラーの可能性
# 良い例: ステータスコードを確認
response = requests.get("https://api.example.com/data")
if response.status_code == 200:
data = response.json()
else:
data = {}
まとめ
Pythonのget()メソッドは、辞書操作とHTTPリクエストの両方で重要な役割を果たします。
辞書のget()メソッドの利点:
- KeyErrorを回避できる
- デフォルト値を簡単に設定可能
- コードが簡潔になる
requests.get()の利点:
- HTTPリクエストが簡単に実行できる
- パラメータやヘッダーの設定が容易
- レスポンスの処理が直感的
適切なエラー処理と組み合わせることで、より堅牢なPythonアプリケーションを作成できます。get()メソッドを効果的に活用して、安全で読みやすいコードを書きましょう。
■プロンプトだけでオリジナルアプリを開発・公開してみた!!
■AI時代の第一歩!「AI駆動開発コース」はじめました!
テックジム東京本校で先行開始。
■テックジム東京本校
「武田塾」のプログラミング版といえば「テックジム」。
講義動画なし、教科書なし。「進捗管理とコーチング」で効率学習。
より早く、より安く、しかも対面型のプログラミングスクールです。
<短期講習>5日で5万円の「Pythonミニキャンプ」開催中。
<月1開催>放送作家による映像ディレクター養成講座
<オンライン無料>ゼロから始めるPython爆速講座


