dataplatform/APPData/Router/MacroDataRouter.py

43 lines
1.3 KiB
Python
Raw Normal View History

2022-11-17 15:18:34 +08:00
import datetime
import math
import pandas as pd
from fastapi import APIRouter, Depends, UploadFile, File, HTTPException
from sqlalchemy.orm import Session
2022-11-17 16:08:03 +08:00
from APPData.Crud import MacroDataCrud
2022-11-17 15:26:51 +08:00
from APPData.Schemas import CompanySchemas
2022-11-17 15:18:34 +08:00
from Utils.DataBase.MongoHelperUtils import get_mongodb
from Utils.DataBase.SqlAlchemyUtils import get_db
router = APIRouter(
tags=["宏观数据"],
prefix="/api/macro_data"
)
@router.post("/upload", summary="上传经济实力表")
async def func01(region: str, excel: UploadFile = File(...), db: Session = Depends(get_db)):
mongodb = get_mongodb()
contents = await excel.read()
data = pd.read_excel(contents, skiprows=1)
data = data.set_index('序号')
for num in data.index.values:
df_line = data.loc[num, data.columns.values].to_dict()
df_line['省/直辖市'] = region
for key, value in df_line.items():
try:
if math.isnan(value):
df_line[key] = None
except TypeError:
continue
2022-11-17 16:08:03 +08:00
MacroDataCrud.upsert_data(mongodb=mongodb, data=df_line)
2022-11-17 15:18:34 +08:00
return {"info": "Success"}
2022-11-17 15:26:51 +08:00
@router.post("/view", summary="查看数据")
2022-11-17 16:08:03 +08:00
def func03(req_body: CompanySchemas.MacroSearch):
2022-11-17 15:18:34 +08:00
mongodb = get_mongodb()
2022-11-17 16:08:03 +08:00
data = MacroDataCrud.find_data(mongodb=mongodb, condition=req_body)
2022-11-17 15:26:51 +08:00
return data