Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Mengembalikan Data Berformat JSON dengan Cekap dalam Aplikasi FastAPI?

Bagaimanakah Saya Boleh Mengembalikan Data Berformat JSON dengan Cekap dalam Aplikasi FastAPI?

Barbara Streisand
Barbara Streisandasal
2024-11-28 22:22:11723semak imbas

How Can I Efficiently Return JSON-Formatted Data in a FastAPI Application?

Mengembalikan Data Berformat JSON dengan FastAPI

Apabila membangunkan aplikasi FastAPI, adalah penting untuk memahami nuansa mengembalikan data berformat JSON. Ini memerlukan menyelidiki kerja dalaman FastAPI dan memahami peranan yang dimainkan oleh pensirilan JSON.

Dilema dengan Pensirilan JSON

Di tengah-tengah isu terletak penggunaan json.dumps() untuk menyerikan objek sebelum mengembalikannya. Walaupun pendekatan ini mungkin kelihatan logik, ia memperkenalkan siri berlebihan kerana FastAPI secara automatik JSON-mengekodkan nilai pulangan semasa penjanaan respons. Ini membawa kepada perwakilan rentetan yang kelihatan tidak betul bagi data JSON dan bukannya dict yang diformat dengan kemas.

Penyelesaian

Untuk membetulkan perkara ini, anda mesti membenarkan FastAPI mengendalikan proses siri JSON. Ini boleh dicapai dengan mengembalikan objek data (dikt, senarai, dll.) secara langsung. FastAPI akan menukarnya dengan lancar kepada data serasi JSON menggunakan jsonable_encoder dan membungkusnya dalam JSONResponse. Respons yang terhasil akan mengandungi data yang dikodkan aplikasi/json, memastikan format JSON yang dikehendaki.

Pilihan Pelaksanaan

Pilihan 1: Menggunakan Nilai Pulangan

Kembalikan objek data seperti yang anda jangkakan :

@app.get('/')
async def main():
    return d

Di sebalik tabir, FastAPI akan bersiri dict (d) menggunakan JSONResponse dan mengekodkannya dengan json.dumps().

Pilihan 2: Objek Respons Tersuai

Jika anda memerlukan kawalan tepat ke atas respons, gunakan objek Respons secara terus:

@app.get('/')
async def main():
    return Response(content=json.dumps(d, indent=4, default=str), media_type='application/json')

Pendekatan ini memberi anda kebebasan ke atas jenis_media (cth., 'application/json'), menyediakan kebolehubahsuaian.

Nota: Argumen lalai untuk json.dumps() (str) membenarkan penyirian objek datetime. Dengan menghantar inden, anda boleh mengawal pemformatan output JSON.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengembalikan Data Berformat JSON dengan Cekap dalam Aplikasi FastAPI?. 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