from fastapi import APIRouter from pydantic import BaseModel INDEX = "EBIT利息保障倍数_三年加权计算(倍)" router = APIRouter() class Params(BaseModel): 当期净利润: float 当期计入财务费用的利息支出: float 当期所得税: float 当期资本化利息支出: float 上期净利润: float 上期计入财务费用的利息支出: float 上期所得税: float 上期资本化利息支出: float 上二期净利润: float 上二期计入财务费用的利息支出: float 上二期所得税: float 上二期资本化利息支出: float @router.post("/{}".format(INDEX)) def func(p: Params): try: ratio1 = (p.当期净利润 + p.当期计入财务费用的利息支出 + p.当期所得税) / (p.当期计入财务费用的利息支出 + p.当期资本化利息支出) ratio2 = (p.上期净利润 + p.上期计入财务费用的利息支出 + p.上期所得税) / (p.上期计入财务费用的利息支出 + p.上期资本化利息支出) ratio3 = (p.上二期净利润 + p.上二期计入财务费用的利息支出 + p.上二期所得税) / (p.上二期计入财务费用的利息支出 + p.上二期资本化利息支出) result = ratio1*0.5 + ratio2*0.3 + ratio3*0.2 return round(result, 2) except ZeroDivisionError: return "+inf" # 此处本应为算式无意义,特殊处理为正无穷大 except Exception: return "计算错误"