我的问题是如何使用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)