此项目实现了将akshare获取的股票数据存储到本地PostgreSQL数据库的功能,支持多种时间周期数据。
- 多时间周期支持:日线、周线、月线、年线、分钟线数据
- 数据清洗:自动处理非数值字符,防止数据转换错误
- 异常处理:包含API回退机制和错误处理
- 数据库集成:与现有系统完全兼容
stock_info- 股票基本信息stock_history- 历史数据(日/周/月/年线)stock_minutely- 分钟数据(1min, 5min, 15min, 30min, 60min)stock_intraday- 盘中数据
主要功能模块,包含以下函数:
# 存储单个时间周期数据
store_daily_data(symbol, adjust="") # 存储日线数据
store_weekly_data(symbol, adjust="") # 存储周线数据
store_monthly_data(symbol, adjust="") # 存储月线数据
store_yearly_data(symbol, adjust="") # 存储年线数据
store_minute_data(symbol, period='1', adjust="") # 存储分钟数据
# 存储所有时间周期数据
store_all_timeframe_data(symbol, adjust="") # 一次性存储所有周期数据
# 检索数据
get_stored_data(symbol, period, adjust="") # 获取已存储的数据import sys
import os
sys.path.append(os.path.join(os.path.dirname(__file__), 'backend'))
from backend import database as db
import backend.akshare_postgresql as ak_pg
# 初始化数据库
ak_pg.init_database()
# 存储单个股票的所有时间周期数据
results = ak_pg.store_all_timeframe_data("00001", adjust="")
# 检索已存储的数据
data = ak_pg.get_stored_data("00001", "daily", "")- API端点:已更新
backend/main.py以支持所有时间周期数据访问 - 数据同步:已更新
backend/sync_data.py以使用新模块 - 兼容性:与现有系统完全兼容
确保PostgreSQL数据库配置正确:
# backend/database.py
DB_USER = "fin-ai"
DB_PASSWORD = "YOUR PASSWORD"
DB_HOST = "Your IP"
DB_PORT = "5432" # Default PostgreSQL port
DB_NAME = "fin-ai"cd backend
python sync_data.py启动后端服务:
cd backend
python main.pyAPI端点:
GET /api/stock_data?symbol=000001&period=daily&adjust=qfq- 支持的周期:daily, weekly, monthly, yearly, 1min, 5min, 等
- 网络连接问题:确保可以访问akshare API
- 数据库连接:验证PostgreSQL配置
- 数据格式错误:模块已包含数据清理机制
- 使用时需确保akshare库已正确安装
- 遵守API使用限制,避免频繁请求
- 数据库需预先创建并配置正确的连接参数