import tushare as ts from stock_config import TUSHARE_TOKEN, get_engine # 1. 配置参数 # 在 Tushare 官网个人主页获取你的 token TOKEN = TUSHARE_TOKEN # 数据库连接配置 (格式: mysql+pymysql://用户名:密码@主机地址:端口/数据库名) # DB_CONN_STR = 'mysql+pymysql://yangfan:aA%8023321088@8.159.129.156:10836/level?charset=utf8' def sync_stock_basic(): # 2. 初始化 tushare 接口 ts.set_token(TOKEN) pro = ts.pro_api() print("正在从 Tushare 获取股票列表数据...") # 3. 获取数据 (对应 doc_id=25 的接口参数) # 获取当前所有正常上市交易的股票列表 df = pro.stock_basic( exchange='', list_status='L', fields='ts_code,symbol,name,area,industry,fullname,enname,cnspell,market,exchange,curr_type,list_status,list_date,delist_date,is_hs,act_name,act_ent_type' ) if df.empty: print("未获取到数据,请检查接口权限或Token设置。") return False # 4. 写入数据库 try: # 创建数据库引擎 engine = get_engine() # 将数据写入数据库表 'stock_basic' # if_exists='replace': 如果表存在则替换(适合全量更新基础信息) # index=False: 不保存 DataFrame 的索引 df.to_sql('stock_basic', engine, if_exists='replace', index=False) print(f"成功将 {len(df)} 条股票基础信息写入数据库表 [stock_basic]。") return True except Exception as e: print(f"写入数据库失败: {e}") return False if __name__ == "__main__": sync_stock_basic()