ホームページ > バックエンド開発 > Python チュートリアル > FastAPI で JSON データを返す方法: 自動変換と手動変換?

FastAPI で JSON データを返す方法: 自動変換と手動変換?

DDD
リリース: 2024-12-04 12:29:10
オリジナル
1037 人が閲覧しました

How to Return JSON Data in FastAPI: Automatic vs. Manual Conversion?

FastAPI を使用して JSON 形式でデータを返す方法?

FastAPI を使用して JSON 形式でデータを返すには、jsonable_encoder エンコーダを使用して、 Python データ構造を JSON 互換データに変換します。これは、次のオプションのいずれかを使用して実現できます。

オプション 1: jsonable_encoder を自動的に使用する

通常どおりデータを返すと、FastAPI が自動的に JSON 変換を処理します。 FastAPI は内部で jsonable_encoder を使用してデータを JSON 互換形式に変換します。 jsonable_encoder は、日時オブジェクトなどのサポートされていないオブジェクトが確実に文字列に変換されるようにします。次に、FastAPI は、application/json メディア タイプを使用して JSONResponse オブジェクトにデータをラップし、クライアントはこれを JSON 応答として受け取ります。

from fastapi.encoders import jsonable_encoder
from fastapi.responses import JSONResponse

def return_dict():
    data_dict = {"name": "John Doe", "age": 30}
    return JSONResponse(content=jsonable_encoder(data_dict))
ログイン後にコピー

オプション 2: 手動 JSON 変換

カスタム JSON 変換を実行する必要がある場合は、media_type を「application/json」に設定した Response オブジェクトを直接返すことができます。コンテンツは JSON エンコードされたデータに設定されます。 json.dumps() 関数を必ずdefault=str 引数とともに使用して、サポートされていないオブジェクトが JSON としてエンコードされる前に文字列に変換されるようにしてください。

import json
from fastapi import Response

def return_response():
    data_dict = {"name": "John Doe", "age": 30}
    json_data = json.dumps(data_dict, default=str)
    return Response(content=json_data, media_type="application/json")
ログイン後にコピー

追加メモ:

  • デフォルトでは、FastAPI は Content-Length ヘッダーと Content-Type ヘッダーをResponse.
  • Response または JSONResponse オブジェクトの status_code 属性を設定することで、応答のカスタム ステータス コードを指定できます。

以上がFastAPI で JSON データを返す方法: 自動変換と手動変換?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート