diff --git a/src/easy_tdx/web/deps.py b/src/easy_tdx/web/deps.py index a1b8386..a121205 100644 --- a/src/easy_tdx/web/deps.py +++ b/src/easy_tdx/web/deps.py @@ -17,7 +17,11 @@ def get_client(request: Request) -> AsyncTdxClient: def get_mac_client(request: Request) -> Any: """从 app.state 获取共享的 AsyncMacClient 实例。""" - client: Any = request.app.state.mac_client + from easy_tdx.exceptions import TdxConnectionError + + client: Any | None = request.app.state.mac_client + if client is None: + raise TdxConnectionError("MAC 客户端未连接") return client diff --git a/src/easy_tdx/web/routers/ex_market.py b/src/easy_tdx/web/routers/ex_market.py index 09de9a0..fb92b0f 100644 --- a/src/easy_tdx/web/routers/ex_market.py +++ b/src/easy_tdx/web/routers/ex_market.py @@ -15,12 +15,13 @@ router = APIRouter(tags=["ex-market"]) def _records_to_df_resp(records: list[Any]) -> DataFrameResponse: - """将 dataclass 列表转为 DataFrameResponse。""" + """将 dataclass 列表转为 DataFrameResponse(过滤内部 _raw 字段)。""" import pandas as pd if not records: return DataFrameResponse(data=[], count=0) - df = pd.DataFrame([asdict(r) for r in records]) + rows = [{k: v for k, v in asdict(r).items() if not k.startswith("_")} for r in records] + df = pd.DataFrame(rows) return DataFrameResponse.from_dataframe(df)