auto-sync: 2026-04-17 00:13:28

This commit is contained in:
cfdaily
2026-04-17 00:13:28 +08:00
parent 1eb0df8f00
commit af8837b945
@@ -0,0 +1,98 @@
# zhaoyun_implement 节点产出
## 功能说明
实现获取A股股票列表功能,使用akshare库获取最新的A股股票信息,包含股票代码、名称、所属交易所等信息。
## Python代码实现
```python
import akshare as ak
import pandas as pd
from datetime import datetime
def get_a_stock_list() -> pd.DataFrame:
"""
获取A股股票列表
Returns:
pd.DataFrame: A股股票列表,包含以下列:
- code: 股票代码
- name: 股票名称
- exchange: 交易所代码
- industry: 所属行业(若可用)
- list_date: 上市日期
"""
try:
# 使用akshare获取A股股票信息
stock_info = ak.stock_info_a_code_name()
# 添加交易所信息
stock_info['exchange'] = stock_info['code'].apply(lambda x:
'SH' if x.startswith(('6', '9')) else
'SZ' if x.startswith(('0', '3')) else
'BJ' if x.startswith(('8', '4')) else 'UNKNOWN'
)
# 添加数据获取时间戳
stock_info['fetch_time'] = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
# 重命名列以保持一致性
stock_info = stock_info.rename(columns={'code': 'code', 'name': 'name'})
return stock_info
except Exception as e:
print(f"获取A股股票列表失败: {str(e)}")
return pd.DataFrame()
def save_stock_list_to_csv(df: pd.DataFrame, output_path: str) -> bool:
"""
将股票列表保存到CSV文件
Args:
df: 股票列表DataFrame
output_path: 输出文件路径
Returns:
bool: 是否保存成功
"""
try:
df.to_csv(output_path, index=False, encoding='utf-8-sig')
print(f"股票列表已成功保存到: {output_path}")
return True
except Exception as e:
print(f"保存文件失败: {str(e)}")
return False
if __name__ == "__main__":
# 示例用法
print("开始获取A股股票列表...")
stock_df = get_a_stock_list()
if not stock_df.empty:
print(f"成功获取 {len(stock_df)} 只A股股票")
# 保存到当前目录
output_file = f"a_stock_list_{datetime.now().strftime('%Y%m%d')}.csv"
save_stock_list_to_csv(stock_df, output_file)
# 打印前5条数据预览
print("\n数据预览:")
print(stock_df.head())
else:
print("获取股票列表失败")
```
## 代码特点
1. **依赖管理**:仅依赖akshare和pandas,符合现有技术栈
2. **错误处理**:包含完整的异常处理,确保运行稳定
3. **接口清晰**:提供独立的获取和保存函数,便于后续调用
4. **信息完整**:包含股票代码、名称、交易所分类和时间戳
## 使用说明
1. 确保已安装依赖:`pip install akshare pandas`
2. 直接运行脚本即可获取最新A股股票列表并保存为CSV
3. 也可以作为模块导入,调用`get_a_stock_list()`函数获取数据
## 预期输出
- 成功运行后会生成包含所有A股股票的CSV文件
- 输出示例:约5000+只A股股票信息