Movatterモバイル変換


[0]ホーム

URL:


Перейти к содержанию
Join theFastAPI Cloud waiting list 🚀
Follow@fastapi onX (Twitter) to stay updated
FollowFastAPI onLinkedIn to stay updated
Subscribe to theFastAPI and friends newsletter 🎉
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor

JSON-совместимый кодировщик

🌐 Перевод выполнен с помощью ИИ и людей

Этот перевод был сделан ИИ под руководством людей. 🤝

В нем могут быть ошибки из-за неправильного понимания оригинального смысла или неестественности и т. д. 🤖

Вы можете улучшить этот перевод,помогая нам лучше направлять ИИ LLM.

Английская версия

В некоторых случаях может потребоваться преобразование типа данных (например, Pydantic-модели) в тип, совместимый с JSON (например,dict,list и т.д.).

Например, если необходимо хранить его в базе данных.

Для этогоFastAPI предоставляет функциюjsonable_encoder().

Использованиеjsonable_encoder

Представим, что у вас есть база данныхfake_db, которая принимает только JSON-совместимые данные.

Например, она не принимает объектыdatetime, так как они не совместимы с JSON.

В таком случае объектdatetime следует преобразовать в строку, соответствующуюформату ISO.

Точно так же эта база данных не может принять Pydantic-модель (объект с атрибутами), а толькоdict.

Для этого можно использовать функциюjsonable_encoder.

Она принимает объект, например, Pydantic-модель, и возвращает его версию, совместимую с JSON:

fromdatetimeimportdatetimefromfastapiimportFastAPIfromfastapi.encodersimportjsonable_encoderfrompydanticimportBaseModelfake_db={}classItem(BaseModel):title:strtimestamp:datetimedescription:str|None=Noneapp=FastAPI()@app.put("/items/{id}")defupdate_item(id:str,item:Item):json_compatible_item_data=jsonable_encoder(item)fake_db[id]=json_compatible_item_data

В данном примере она преобразует Pydantic-модель вdict, аdatetime - вstr.

Результатом её вызова является объект, который может быть закодирован с помощью функции из стандартной библиотеки Python –json.dumps().

Функция не возвращает большойstr, содержащий данные в формате JSON (в виде строки). Она возвращает стандартную структуру данных Python (например,dict) со значениями и подзначениями, которые совместимы с JSON.

Примечание

jsonable_encoder фактически используетсяFastAPI внутри системы для преобразования данных. Однако он полезен и во многих других сценариях.


[8]ページ先頭

©2009-2026 Movatter.jp