掘金 人工智能 04月28日 10:32
傻瓜教程安装Trae IDE用AI撰写第一个AKShare接口脚本
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文介绍了如何利用Trae IDE和AI,快速开发基于AKShare库的ETF实时行情脚本。文章详细讲解了Trae IDE的安装配置、项目设置,以及如何通过AI辅助生成和优化代码,实现获取ETF实时行情数据、保存为CSV文件、解决中文乱码等功能。此外,还展示了如何通过用户反馈和AI的迭代优化,最终实现动态文件名和子目录保存等高级功能。即使是初学者,也能在Trae IDE和AI的帮助下,高效完成金融数据任务。

⚙️ **Trae IDE配置与项目设置**:详细介绍了Trae IDE的安装过程,强调了安装路径的选择以避免权限问题,并演示了如何创建和配置项目,包括设置Python解释器和conda环境路径,确保脚本运行环境的正确性。

🤖 **AI辅助脚本开发**:展示了如何通过用户输入需求,由AI自动生成获取ETF实时行情的Python脚本,并利用AKShare库获取数据。AI生成的代码能够直接运行,极大地提高了开发效率。

💾 **数据导出与优化**:描述了如何扩展脚本功能,将获取的ETF数据保存为CSV文件,并解决了在Excel中打开CSV文件时出现的中文乱码问题,通过设置encoding='gbk'来保证中文正常显示。

🗂️ **动态文件名与目录**:介绍了如何进一步优化脚本,实现将CSV文件保存到指定的“数据导出”子目录,并根据“更新时间”列的最后值动态生成文件名,使得数据管理更加便捷。

本文通过用户与 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"}

初始需求:获取 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 的智能代码生成,让初学者也能快速上手,完成复杂金融数据任务。

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

Trae IDE AKShare ETF行情 AI辅助开发 Python
相关文章