import json import aioch import pandas as pd from fastapi import APIRouter, Depends, Request import crud, schemas from api import deps from db.ckdb import get_ck_db router = APIRouter() @router.post("/sql") async def query_sql( request: Request, data_in: schemas.Sql, ckdb: aioch.Client = Depends(get_ck_db), current_user: schemas.UserDB = Depends(deps.get_current_user) ) -> schemas.Msg: """原 sql 查询 """ data, columns = await ckdb.execute(data_in.sql, with_column_types=True, columnar=True) df = pd.DataFrame({col[0]: d for d, col in zip(data, columns)}) return schemas.Msg(code=0, msg='ok', data=df.to_dict()) @router.post("/query") async def query( request: Request, data_in: schemas.CkQuery, ckdb: aioch.Client = Depends(get_ck_db), current_user: schemas.UserDB = Depends(deps.get_current_user) ) -> schemas.Msg: """ json解析 sql 查询""" # data, columns = await ckdb.execute(data_in.sql, with_column_types=True, columnar=True) # df = pd.DataFrame({col[0]: d for d, col in zip(data, columns)}) return schemas.Msg(code=0, msg='ok', data=data_in)