Python HTTP 批量获取 A股上证指数 日线K线完整开发教程
一、前言
在A股量化分析、大盘趋势复盘、宏观行情统计开发场景中,上证指数(000001.SH)是最核心的基准大盘标的。相比于第三方付费行情数据源,开源稳定的HTTP时序接口更适合个人开发者、小型量化团队做离线回测、数据清洗与行情可视化。
本文将完整讲解A股上证指数日线K线的请求配置、异常容错处理、数据遍历解析、时序数据落地规范,提供可直接运行的Python源码,同时详细拆解接口返回数组结构、字段释义与量化落地使用技巧,全程纯技术无任何引流推广内容,适配CSDN技术博文规范。
二、接口基础参数配置
1、通用K线时序接口地址:http://39.107.99.235:1008/redis.php
2、A股上证指数标准编码:000001.SH
3、目标请求周期:1d(日线级别,适合中长期趋势分析)
4、核心请求参数说明:
-
code:标的证券代码,固定填写000001.SH代表上证指数
-
time:K线周期,支持1m/5m/15m/1h/1d/1M
-
rows:单次请求返回K线条数,最大支持300条
5、统一请求头:Accept-Encoding: gzip,开启传输压缩,降低接口响应耗时与带宽占用
6、完整请求URL示例:
http://39.107.99.235:1008/redis.php?code=000001.SH&time=1d&rows=300
三、完整可运行Python代码(含异常容错+数据解析)
本次代码基于requests库开发,内置网络超时捕获、请求异常处理、数据判空逻辑,可直接部署本地或服务器长期批量拉取历史行情,适配量化回测、数据归档场景。
import requests
def get_sh_index_daily_kline(limit: int = 300):
"""
获取A股上证指数(000001.SH)日线K线时序数据
:param limit: 最大返回K线条数,默认300
:return: 二维时序数组,异常返回None
"""
# 接口基础地址
api_url = "http://39.107.99.235:1008/redis.php"
# 统一请求头
headers = {
"Accept-Encoding": "gzip"
}
# 请求参数封装
params = {
"code": "000001.SH",
"time": "1d",
"rows": limit
}
try:
# 发起GET请求,设置12秒超时防止阻塞
response = requests.get(api_url, headers=headers, params=params, timeout=12)
# 校验HTTP响应状态,非200直接抛出异常
response.raise_for_status()
# 解析JSON时序数据
kline_data = response.json()
# 判空处理,避免空数据报错
if not isinstance(kline_data, list) or len(kline_data) == 0:
print("接口返回空K线数据")
return None
return kline_data
except requests.exceptions.Timeout:
print("接口请求超时,请检查网络状态")
return None
except requests.exceptions.ConnectionError:
print("网络连接异常,无法访问行情接口")
return None
except Exception as e:
print("获取上证指数K线数据异常:", str(e))
return None
if __name__ == "__main__":
# 获取300根上证指数日线K线
index_k_data = get_sh_index_daily_kline(300)
if index_k_data:
print("===== A股上证指数 最新15根日线行情 =====")
# 遍历打印前15根K线核心数据
for idx, item in enumerate(index_k_data[:15]):
timestamp, open_p, high_p, low_p, close_p, date_str, volume = item
print(f"第{idx+1}根 | 日期:{date_str} | 开盘:{open_p} | 收盘:{close_p} | 最高:{high_p} | 最低:{low_p} | 成交量:{volume}")
四、接口返回完整数据结构详解
接口返回标准二维数组格式,单根K线固定7个字段,顺序永久固定,无多余嵌套结构,便于程序解析与指标计算。
返回数据样例片段
[
[1782950400000, 3125.68, 3132.45, 3118.22, 3128.96, "2026-07-01", 286954200],
[1782864000000, 3119.35, 3126.88, 3115.79, 3122.41, "2026-06-30", 265879300]
]
字段顺序完整释义
-
第0位:毫秒时间戳:用于程序时序排序、区间筛选、数据去重,是量化回测核心时间基准
-
第1位:开盘价:当日大盘开盘点位
-
第2位:最高价:当日大盘最高波动点位
-
第3位:最低价:当日大盘最低波动点位
-
第4位:收盘价:当日最终收盘点位,趋势判断核心字段
-
第5位:日期字符串:标准化年月日,用于日志打印、前端展示、数据归档命名
-
第6位:成交量:当日A股大盘总成交量,用于量价关系、市场活跃度分析
五、量化落地使用技巧
1、数据连续性:A股日线仅交易日有数据,周末、法定节假日无K线返回,回测时需手动剔除空白时段,避免指标计算出错。
2、指标拓展:可将返回数组转为pandas DataFrame,快速计算MA5/MA10/MA20均线、MACD、波动率等常用大盘指标。
3、数据归档:可循环拉取数据存入MySQL、CSV文件,搭建本地A股大盘历史行情数据库。
4、周期切换:修改time参数即可切换15分钟、1小时等短周期,适配日内大盘波动分析。
更多推荐


所有评论(0)