#!/usr/bin/env python3 """ 检查 Tushare ths_daily API 返回的数据字段 """ import asyncio import sys import os from datetime import datetime, timedelta sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) from app.config import get_settings from app.astock_agent.tushare_client import get_tushare_client async def check_api_fields(): """检查API字段""" print("\n" + "=" * 80) print("🔍 检查 ths_daily API 返回字段") print("=" * 80) settings = get_settings() ts_client = get_tushare_client(settings.tushare_token) # 获取智能电网板块 sectors_df = ts_client.get_concept_sectors() smart_grid = sectors_df[sectors_df['name'] == '智能电网'] if smart_grid.empty: print("未找到智能电网板块") return ts_code = smart_grid.iloc[0]['ts_code'] print(f"\n板块代码: {ts_code}") today = datetime.now().strftime('%Y%m%d') yesterday = (datetime.now() - timedelta(days=10)).strftime('%Y%m%d') daily_df = ts_client.pro.ths_daily( ts_code=ts_code, start_date=yesterday, end_date=today ) if daily_df.empty: print("未获取到数据") return print(f"\n获取到 {len(daily_df)} 条数据") print("\n数据列:") print(daily_df.columns.tolist()) print("\n最近3天的数据:") print(daily_df.tail(3).to_string()) print("\n" + "=" * 80) print("\n字段分析:") for col in daily_df.columns: print(f" {col}: {daily_df[col].dtype}") if col in ['volume', 'amount', 'vol', 'amt']: print(f" 最新值: {daily_df[col].iloc[-1]}") print(f" 前一日: {daily_df[col].iloc[-2] if len(daily_df) > 1 else 'N/A'}") async def main(): await check_api_fields() if __name__ == "__main__": asyncio.run(main())