Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mengembalikan Data JSON dalam FastAPI: Penukaran Automatik lwn Manual?

Bagaimana untuk Mengembalikan Data JSON dalam FastAPI: Penukaran Automatik lwn Manual?

DDD
DDDasal
2024-12-04 12:29:10967semak imbas

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

Bagaimana untuk mengembalikan data dalam format JSON menggunakan FastAPI?

Untuk mengembalikan data dalam format JSON menggunakan FastAPI, anda boleh menggunakan pengekod jsonable_encoder untuk menukar struktur data Python kepada data yang serasi dengan JSON. Ini boleh dicapai menggunakan salah satu daripada pilihan berikut:

Pilihan 1: Menggunakan jsonable_encoder Secara Automatik

Kembalikan data seperti biasa dan FastAPI akan mengendalikan penukaran JSON secara automatik. FastAPI secara dalaman menggunakan jsonable_encoder untuk menukar data kepada format yang serasi dengan JSON. Jsonable_encoder memastikan objek yang tidak disokong, seperti objek datetime, ditukar kepada rentetan. FastAPI kemudian membungkus data dalam objek JSONResponse dengan jenis media aplikasi/json, yang pelanggan terima sebagai respons 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))

Pilihan 2: Penukaran JSON Manual

Jika anda perlu melakukan penukaran JSON tersuai, anda boleh terus mengembalikan objek Respons dengan set media_type kepada 'application/json' dan set kandungan kepada data berkod JSON. Ingat untuk menggunakan fungsi json.dumps() dengan argumen default=str untuk memastikan objek yang tidak disokong ditukar kepada rentetan sebelum dikodkan sebagai 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")

Nota Tambahan:

  • Secara lalai, FastAPI menambah pengepala Content-Length dan Content-Type pada respons.
  • Anda boleh menentukan kod status tersuai untuk respons dengan menetapkan atribut status_code objek Respons atau JSONResponse.

Atas ialah kandungan terperinci Bagaimana untuk Mengembalikan Data JSON dalam FastAPI: Penukaran Automatik lwn Manual?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn