本文通过用户与 AI 的对话,展示如何在 Trae IDE 中安装环境、配置项目,并利用 AI 开发和优化基于 AKShare 库的 ETF 实时行情脚本。内容包括 Trae IDE 安装、项目配置、脚本开发、问题修复及功能扩展。
前置条件
软件:Anaconda 安装设置,详见我之前发布的文章
虚拟环境:自定义环境名 AKTool,Python 3.11 + AKShare 库,详见我之前发布的文章
安装 Trae IDE
- 访问官方网站:前往 www.trae.com.cn/home 下载 Trae IDE 安装包。安装建议:不建议安装在系统盘(如 C 盘),推荐选择 D 盘或 E 盘以避免权限问题。安装步骤:运行安装程序,按照提示完成安装,确保选择合适的安装路径。
项目设置
- 新建项目文件夹:创建一个项目文件夹,例如
E:\PycharmProjects\PythonProject\AKTool
。打开项目:启动 Trae IDE,通过“文件 > 打开文件夹”选择 E:\PycharmProjects\PythonProject\AKTool
作为项目根目录。新建配置文件
创建配置文件:
- 打开菜单“文件 > 使用配置文件新建窗口 > 创建配置文件”。输入名称
AKTool
,点击“创建”。添加项目文件夹:
- 在文件夹和工作区中添加项目文件夹
E:\PycharmProjects\PythonProject\AKTool
。配置内容:
- 点击“内容 > 设置”,在侧边栏打开设置面板。
{ "workbench.colorTheme": "Deep Blue", "python.condaPath": "E:\anaconda3\Scripts\conda.exe activate AKTool", "python.defaultInterpreterPath": "E:\anaconda3\envs\AKTool"}
- 按
Ctrl+S
保存。初始需求:获取 ETF 实时行情
用户输入:
根据接口说明文档,撰写一个获取所有ETF实时行情的脚本。ETF基金实时行情-东财
接口: fund_etf_spot_em
目标地址: https://quote.eastmoney.com/center/gridlist.html#fund_etf
描述: 东方财富-ETF 实时行情
限量: 单次返回所有数据
输入参数
名称类型描述
输出参数
名称类型描述
代码object-
名称object-
最新价float64-
IOPV实时估值float64-
基金折价率float64注意单位: %
涨跌额float64-
涨跌幅float64注意单位: %
成交量float64-
成交额float64-
开盘价float64-
最高价float64-
最低价float64-
昨收float64-
换手率float64-
量比float64-
委比float64-
外盘float64-
内盘float64-
主力净流入-净额float64-
主力净流入-净占比float64-
超大单净流入-净额float64-
超大单净流入-净占比float64-
大单净流入-净额float64-
大单净流入-净占比float64-
中单净流入-净额float64-
中单净流入-净占比float64-
小单净流入-净额float64-
小单净流入-净占比float64-
现手float64-
买一float64-
卖一float64-
最新份额float64-
流通市值int64-
总市值int64-
数据日期object-
更新时间object-
接口示例
import akshare as ak
fund_etf_spot_em_df = ak.fund_etf_spot_em()
print(fund_etf_spot_em_df)
数据示例
代码 名称 ... 数据日期 更新时间
0 520890 港股通红利低波ETF ... 2024-12-26 2024-12-26 16:11:57+08:00
1 159331 红利港股ETF ... 2024-12-26 2024-12-26 15:34:48+08:00
2 159333 港股央企红利ETF ... 2024-12-26 2024-12-26 15:34:45+08:00
3 159583 通信设备ETF ... 2024-12-26 2024-12-26 15:35:03+08:00
4 515880 通信ETF ... 2024-12-26 2024-12-26 16:11:33+08:00
... ... ... ... ... ...
1005 561170 绿电50ETF ... 2024-12-26 2024-12-26 16:11:52+08:00
1006 562550 绿电ETF ... 2024-12-26 2024-12-26 16:11:39+08:00
1007 159301 公用事业ETF ... 2024-12-26 2024-12-26 15:34:36+08:00
1008 159611 电力ETF ... 2024-12-26 2024-12-26 15:34:12+08:00
1009 560580 电力ETF南方 ... 2024-12-26 2024-12-26 16:11:52+08:00
[1010 rows x 37 columns]
AI 回复:
Trae CN 生成以下脚本,保存为 get_etf_spot.py
:
import akshare as ak# 调用 fund_etf_spot_em 接口获取 ETF 实时行情数据fund_etf_spot_em_df = ak.fund_etf_spot_em()# 打印获取到的 ETF 实时行情数据print(fund_etf_spot_em_df)
运行测试:
在 Trae IDE 中,点击运行按钮执行脚本。注意控制台输出,确认环境配置成功,标志为:(AKTool) PS E:\PycharmProjects\AKTool> & E:/anaconda3/envs/AKTool/python.exe e:/PycharmProjects/AKTool/get_etf_spot.py
功能扩展:保存数据到 CSV 文件
用户输入:
增加将数据保存为 CSV 文件的功能。
AI 回复:
Trae CN 修改脚本,加入 Pandas 的 to_csv
方法:
import akshare as akimport pandas as pd# 调用 fund_etf_spot_em 接口获取 ETF 实时行情数据fund_etf_spot_em_df = ak.fund_etf_spot_em()# 将数据保存到 CSV 文件csv_file_path = 'etf_spot_data.csv'fund_etf_spot_em_df.to_csv(csv_file_path, index=False)# 打印获取到的 ETF 实时行情数据print(fund_etf_spot_em_df)print(f"数据已保存到 {csv_file_path}")
运行测试:
点击运行按钮,检查控制台输出,确认环境标志:(AKTool) PS E:\PycharmProjects\AKTool> & E:/anaconda3/envs/AKTool/python.exe e:/PycharmProjects/AKTool/get_etf_spot.py
问题修复:解决 CSV 中文乱码
用户输入:
CSV 文件在 Excel 中打开时中文乱码。
AI 回复:
Trae CN 修改脚本,设置 encoding='gbk'
:
import akshare as akimport pandas as pd# 调用 fund_etf_spot_em 接口获取 ETF 实时行情数据fund_etf_spot_em_df = ak.fund_etf_spot_em()# 将数据保存到 CSV 文件,指定编码为 gbkcsv_file_path = 'etf_spot_data.csv'fund_etf_spot_em_df.to_csv(csv_file_path, index=False, encoding='gbk')# 打印获取到的 ETF 实时行情数据print(fund_etf_spot_em_df)print(f"数据已保存到 {csv_file_path}")
运行测试:
点击运行按钮,确认控制台环境标志:(AKTool) PS E:\PycharmProjects\AKTool> & E:/anaconda3/envs/AKTool/python.exe e:/PycharmProjects/AKTool/get_etf_spot.py
进一步优化:动态文件名与子目录保存
用户输入:\
- 保存 CSV 到“数据导出”子目录。文件名改为
ETF行情导出_日期时间
,以“更新时间”列最后值为准。AI 回复:
Trae CN 生成优化脚本:
import akshare as akimport pandas as pdimport osfrom datetime import datetime# 调用 fund_etf_spot_em 接口获取 ETF 实时行情数据fund_etf_spot_em_df = ak.fund_etf_spot_em()# 获取更新时间列的最后一个时间last_update_time = fund_etf_spot_em_df['更新时间'].iloc[-1]# 将时间字符串转换为 datetime 对象last_update_datetime = pd.to_datetime(last_update_time).to_pydatetime()# 格式化日期时间formatted_time = last_update_datetime.strftime("%Y%m%d%H%M%S")# 定义子目录sub_dir = '数据导出'# 检查子目录是否存在,如果不存在则创建if not os.path.exists(sub_dir): os.makedirs(sub_dir)# 构建完整的 CSV 文件路径csv_file_name = f"ETF行情导出_{formatted_time}.csv"csv_file_path = os.path.join(sub_dir, csv_file_name)# 将数据保存到 CSV 文件,指定编码为 gbkfund_etf_spot_em_df.to_csv(csv_file_path, index=False, encoding='gbk')# 打印获取到的 ETF 实时行情数据print(fund_etf_spot_em_df)print(f"数据已保存到 {csv_file_path}")
运行测试:
点击运行按钮,确认控制台环境标志:(AKTool) PS E:\PycharmProjects\AKTool> & E:/anaconda3/envs/AKTool/python.exe e:/PycharmProjects/AKTool/get_etf_spot.py
总结
本教程展示了如何通过 Trae IDE 和 AI 协作,开发基于 AKShare 的金融数据脚本。主要经验包括:
- 配置 IDE 与测试环境:通过 Trae IDE 配置 Anaconda 虚拟环境(AKTool),确保脚本运行稳定,控制台标志确认环境正确性。小步迭代与充分测试:从基础数据获取到 CSV 导出、乱码修复、动态文件名,每次功能更新后都进行运行测试,用户反馈驱动快速优化。高效开发流程:Trae IDE 的简洁界面结合 AI 的智能代码生成,让初学者也能快速上手,完成复杂金融数据任务。