如何在json中作为后台发布



我的问题是如何使用json作为后端发布输出?只需要发布翻译文本我的后端编码

from fastapi import FastAPI, Form, Depends, Request
from fastapi.templating import Jinja2Templates
from googletrans import Translator
import uvicorn
#connect to translator
translator = Translator(service_urls=['translate.googleapis.com'])
app = FastAPI(debug=True)
templates = Jinja2Templates(directory="template")
@app.get("/")
async def home(request: Request):
return ('index.html',{'request': request})

@app.post("/")
async def trans(request: Request):
text = request.get('Input_text')
lang = request.get('lang_select')
# detect language text
#dt = translator.detect(text)
# detect input language
#dt2 = dt.lang
# translate the text
translated = translator.translate(text,lang)
out_text = translated.text
pronouce = out_text.pronunciation
#transData={'request': request ,'text_translate': out_text,'text_pronouce':pronouce}
return ({'request': request ,'text_translate': out_text,'text_pronouce':pronouce})
if __name__=="__main__":
uvicorn.run(app,host="127.0.0.1",port=8000)

和json格式发布输出

{
"text_translate": "out_text"
"text_pronouce":"pronouce"
}

很明显,我的帖子返回使这个代码不能正常工作。感谢任何帮助或解决方案。。。已滞留数天

尝试使用jsonable_encoder对响应进行编码,然后使用JSONResponse返回数据

代码:

from fastapi import FastAPI, Form, Depends, Request
from fastapi.responses import JSONResponse
from fastapi.encoders import jsonable_encoder
from fastapi.templating import Jinja2Templates
from googletrans import Translator
import uvicorn
#connect to translator
translator = Translator(service_urls=['translate.googleapis.com'])
app = FastAPI(debug=True)
templates = Jinja2Templates(directory="template")
@app.get("/")
async def home(request: Request):
return ('index.html',{'request': request})

@app.post("/")
async def trans(request: Request):
text = request.get('Input_text')
lang = request.get('lang_select')
# detect language text
#dt = translator.detect(text)
# detect input language
#dt2 = dt.lang
# translate the text
translated = translator.translate(text,lang)
out_text = translated.text
pronouce = out_text.pronunciation
#transData={'request': request ,'text_translate': out_text,'text_pronouce':pronouce}
data = jsonable_encoder({'text_translate': out_text,'text_pronouce':pronouce})
return JSONResponse(content=data)
if __name__=="__main__":
uvicorn.run(app,host="127.0.0.1",port=8000)

最新更新