フラスコのjsonify

Haider Ali 2023年6月21日
  1. flask.jsonify()json.dumps() の使用
  2. json.dumps() メソッド
  3. flask.jsonify() 関数
フラスコのjsonify

このガイドでは、jsonifyとは何かを確認し、フラスコダンプします。 flask.jsonifyjson.dump の用途は何ですか?また、それらの違いは何ですか?

それでは、これ以上待たずに、飛び込みましょう。

flask.jsonify()json.dumps() の使用

flask.jsonify()json.dumps() はわずかな違いしかないため、混乱する人が増えているようです。

2つの機能の違いは、最初に思われるほど難しくありません。

これらの違いを簡単に理解できるようにするために、主な質問に答えてみましょう: json.dumps()flask.jsonify() はいつ使用する必要がありますか? しかしまず、json.dumps()とは何かを見てみましょう。

json.dumps() メソッド

まず、JSON ファイルの読み取りまたは書き込み中に、json パッケージを使用する必要があります。 このパッケージには、Python で記述されたデータを JSON ファイルに変換する json.dumps() という名前のメソッドが含まれています。

このメソッドは、Python で記述されたすべてのデータを変換し、JSON ファイルとして読み取られる文字列で返します。

json.dumps() メソッドの例は、都市のリストに名前を付けるために使用されます。

@app.route("/")  # display on "home" page
def list_of_cities_dumps():
    cities = [
        {"name": "Central City", "country": "USA"},
        {"name": "Ottawa", "country": "Canada"},
    ]
    return json.dumps(
        cities
    )  # json.dump() method is being used to call the list of cities


if __name__ == "__main__":
    app.run(debug=True)

出力:

[{'name': 'Central City', 'country': 'USA'}, {'name': 'Ottawa', 'country': 'Canada'}]

上記の例に示すように、都市のリストの出力が表示されます。 読み取り可能ですが、ユーザーが学校の生徒に関するデータを持っていると想像してください。

明確なデータ構成がないため、この方法を使用すると、学生を区別するのが難しくなります。

この欠陥を克服するために、flask.jsonify() 関数が導入されました。

flask.jsonify() 関数

flask.json モジュールでは、jsonify は Flask の関数です。 Flask フレームワークの使用時にデータを HTTP 応答として送信するには、flask.jsonify() 関数を使用する必要があります。

この関数を使用するには flask をインポートする必要があります。

次に、この関数はデータを JSON ファイルに変換し、応答オブジェクトを返します。これは、サーバーがクライアント要求に応答するために使用されます。

変換された JSON ファイルは、新しく作成された応答オブジェクトに追加されます。 content-type ヘッダー フィールドを application/JSON に設定すると、一般にメディア タイプとして知られる適切な MIME タイプも追加されます。

メディア タイプまたは MIME タイプと一緒にファイルを送信すると、メッセージとともにそのファイルのタイプが示されます。

上記と同じ例を参考にして、flask.jsonify() の動作をさらに理解しましょう。

@app.route("/")  # displays on the "home" page
def list_of_cities():
    cities = [
        {"name": "Central City", "country": "USA"},
        {"name": "Ottawa", "country": "Canada"},
    ]
    return jsonify(
        cities
    )  # the function jsonify is used here to call the list of cities


if __name__ == "__main__":
    app.run(debug=True)

出力:

[
  {
    "country": "USA",
    "name": "Central City"
  },
  {
    "country": "Canada",
    "name": "Ottawa"
  }
]

出力に示されているように、都市のリストの出力は整理されており、メソッド json.dumps() を使用した場合と比較して理解しやすくなっています。

以下のコードは、両方の例を組み合わせたものです。

from flask import Flask, jsonify
import json

app = Flask(__name__)


@app.route("/")
def list_of_cities():
    cities = [
        {"name": "Central City", "country": "USA"},
        {"name": "Ottawa", "country": "Canada"},
    ]
    return jsonify(cities)


@app.route("/1")
def list_of_cities_dumps():
    cities = [
        {"name": "Central City", "country": "USA"},
        {"name": "Ottawa", "country": "Canada"},
    ]
    return json.dumps(cities)


if __name__ == "__main__":
    app.run(debug=True)
著者: Haider Ali
Haider Ali avatar Haider Ali avatar

Haider specializes in technical writing. He has a solid background in computer science that allows him to create engaging, original, and compelling technical tutorials. In his free time, he enjoys adding new skills to his repertoire and watching Netflix.

LinkedIn