basic信息
This commit is contained in:
@@ -0,0 +1,53 @@
|
|||||||
|
import tushare as ts
|
||||||
|
from sqlalchemy import create_engine
|
||||||
|
|
||||||
|
# 1. 配置参数
|
||||||
|
# 在 Tushare 官网个人主页获取你的 token
|
||||||
|
TOKEN = '0fad3cf498757089e2630028455d5bbe1637475788bcdaa1f2175e93'
|
||||||
|
# 数据库连接配置 (格式: 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
|
||||||
|
|
||||||
|
# 4. 写入数据库
|
||||||
|
try:
|
||||||
|
# 创建数据库引擎
|
||||||
|
engine = create_engine(
|
||||||
|
"mysql+pymysql://yangfan@8.159.129.156:10836/level?charset=utf8mb4",
|
||||||
|
connect_args={
|
||||||
|
"password": "aA%8023321088"
|
||||||
|
},
|
||||||
|
pool_pre_ping=True
|
||||||
|
)
|
||||||
|
|
||||||
|
# 将数据写入数据库表 '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]。")
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
print(f"写入数据库失败: {e}")
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
sync_stock_basic()
|
||||||
Reference in New Issue
Block a user