auto-sync: 2026-05-01 13:06:14
This commit is contained in:
+98
@@ -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股股票信息
|
||||
Reference in New Issue
Block a user