71 lines
1.8 KiB
Python
71 lines
1.8 KiB
Python
#!/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())
|