dataplatform/APPData/Router/MacroDataRouter.py

43 lines
1.6 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 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
mongodb.upsert_data("WR_DataBase_v2_test", 'C12.2_区域经济',
{"省/直辖市": region, "地区": df_line['地区'], "年份": df_line["年份"]}, df_line)
return {"info": "Success"}
2022-11-17 15:26:51 +08:00
@router.post("/view", summary="查看数据")
def func03(req_body: CompanySchemas.MacroSearch, db: Session = Depends(get_db)):
2022-11-17 15:18:34 +08:00
mongodb = get_mongodb()
2022-11-17 15:26:51 +08:00
data = mongodb.find_all_data("WR_DataBase_v2_test", 'C12.2_区域经济',
{"省/直辖市": req_body.provinces, "地区": req_body.region, "年份": req_body.year}, [])
return data