Flaskでのjsonifyの使い方を解説!FlaskでAPIを作ろう
2024年7月26日

こんにちは!
今回の記事では、Flaskでのjsonifyの使い方を解説します。
FlaskはPythonで使われる軽量なウェブフレームワークであり、Web APIの構築にも非常に適しています。
APIのレスポンスとしてJSONを返す場合、Flaskのjsonify関数を使うと便利です。
この記事では、jsonifyの使い方について詳しく説明します。
jsonifyとは?
jsonifyはFlaskが提供する関数で、Pythonの辞書やリストなどのデータ構造をJSON形式のレスポンスに変換します。これにより、JSON形式のデータを簡単にクライアントに返すことができます。
JSON(JavaScript Object Notation)は、データを軽量かつ構造化された形式で表現するためのフォーマットです。以下のような構造かされたデータです。
{
"name": "Bob",
"contact": {
"email": "bob@example.com",
"phone": "123-456-7890"
}
}
jsonifyは上記のようなJsonデータをFlaskで返すために使います。
jsonifyの基本的な使い方
次に、jsonifyの基本的な使い方を解説します。
Flaskのインストール
まず、Flaskのインストールを行います。
pip install Flask
アプリケーションファイルの作成
次にapp.pyファイルを作成します。
以下のように設定します。
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/api')
def get_data():
data = {
"name": "taro",
"age": 30,
"city": "tokyo"
}
return jsonify(data)
if __name__ == '__main__':
app.run(debug=True)
この例では、/apiエンドポイントにアクセスすると、以下のようなJSONレスポンスが返されます。
{
"name": "taro",
"age": 30,
"city": "tokyo"
}
jsonifyの応用的な使い方
次にjsonifyの応用的な使い方を解説します。
複数の引数を渡す場合
jsonifyは複数の引数を取ることもできます。
この場合、キーワード引数としてデータを渡します。
@app.route('/api/info')
def get_info():
return jsonify(name="taro", age=30, city="tokyo")
このエンドポイントにアクセスすると、以下のようなJSONレスポンスが返されます。
{
"name": "taro",
"age": 30,
"city": "tokyo"
}
カスタムステータスコードとヘッダー
jsonifyを使ってレスポンスのステータスコードやヘッダーをカスタマイズすることもできます。
@app.route('/api/custom')
def get_custom():
data = {
"name": "taro",
"age": 30,
"city": "tokyo"
}
response = jsonify(data)
response.status_code = 202
response.headers['Custom-Header'] = 'CustomValue'
return response
このエンドポイントにアクセスすると、202ステータスコードとカスタムヘッダーが含まれたレスポンスが返されます。
まとめ
今回の記事では、Flaskでのjsonifyの使い方を解説しました。
基本的な使い方から、カスタマイズ方法などを解説しました。Flaskとjsonifyを組み合わせると、APIを簡単に作成することができます。
APIを作ることで、さまざまなアプリケーションとの連携が期待できます。今回の記事がAPIの実装などにお役になれば幸いです。
ここまでお読みいただきありがとうございました。
Pythonの基礎から応用まで学べる
Python WebAcademy
Python WebAcademyでは、Pythonの基礎からアーキテクチャなどの応用的な内容まで幅広く学べます。また、ブラウザ上で直接Pythonコードを試すことができ、実践的なスキルを身につけることが可能です。

インフラの学習はInfraAcademy

おすすめの記事









