API 是什么?
摘要:API(应用程序编程接口)是一套规范化的远程数据获取规则和工具。本文通过餐厅点餐的类比,解释了API的核心概念如端点、请求、参数等。并以Python中的akshare库为例,演示如何获取茅台股票数据,说明API封装如何简化数据获取过程。文章还介绍了akshare的其他金融数据接口,帮助读者理解API在实际编程中的应用场景和工作原理。(148字)
温馨提示:若页面不能正常显示数学公式和代码,请阅读原文获得更好的阅读体验。
作者: 连玉君 (中山大学)
邮箱: arlionn@163.com
- Title: API 是什么?
- Keywords: 应用程序编程接口, 数据获取, akshare, yfinance, 大语言模型, OpenAI, 百度文心一言, 讯飞星火, AI工具
API 是 Application Programming Interface 的缩写,中文翻译为「应用程序编程接口」。它是一套让你方便、安全、标准地远程获取服务或数据的规则和工具。
本文将通过通俗易懂的方式,结合实际案例,帮助初学者快速理解 API 的概念、工作原理和常见应用场景。
1. API 初探
我们先从一个生活中的例子开始,为了让大家对 API 有个直观的理解。去餐厅吃饭时,扫码点餐 的流程大致如下:
- 你在 5 号桌落座后,扫描餐桌上的二维码,手机上会弹出点餐界面(菜单)。
- 你在菜单上勾选:
酸菜鱼,并设置口味:微辣、不要香菜。 - 下单后,手机会自动把你的菜品和要求发送到厨房。
- 厨师收到信息后开始烹饪,最后上菜到你的桌前。
API 的工作原理和这个点餐流程非常相似。采用 API 的术语,上述点餐流程包括如下几个关键概念:
- API 就像餐厅的「点餐系统」,让你不用直接进厨房,只需通过手机菜单(API 接口)就能完成复杂的操作。
- Endpoint(端点):你扫描了 5 号桌上的二维码后进入的点餐页面,就是 API 的 “入口” 或 “网址”。
- Request(请求):你勾选菜品、填写口味、按下 “提交” 按钮,这一系列操作就组成了一个 API 请求,把你的要求传递给餐厅的后厨系统。
- Parameter(参数):你点了哪道菜 (
酸菜鱼)、选择了什么口味(微辣、不要香菜),这些都属于 API 的参数。 - API Key(密钥):类似于账号和密码。就像有些高档餐厅只对会员开放,需要出示会员卡才能点餐,
API Key就像这张会员卡,是一串唯一的字符串,用于证明你的身份和权限。
以上点餐过程的完整请求数据可以采用如下参数方式表示:
request = {"table_number"=5,
"dish"="酸菜鱼",
"spiciness"="微辣",
"no_coriander"=True}
2. Python 实例:获取茅台股票信息
进行数据分析时,我们经常需要从外部获取数据,比如股票行情、天气预报、新闻资讯等。以股票交易数据为例,雅虎财经(Yahoo Finance)、新浪财经(新浪财经)、东方财富(东方财富网)等网站都提供了丰富的股票数据。借助 yfinance, akshare 等 Python 库,我们只需编写几行简单的代码,就能轻松获取这些数据。
2.1 使用 akshare 获取贵州茅台股票数据
下面是一个可以实操的例子:使用 akshare 库来获取贵州茅台(股票代码:600519)2024 年的日行情数据。Python 代码如下:
# pip install akshare # 安装 akshare 库
import akshare as ak # 导入 akshare 库
df_maotai = ak.stock_zh_a_hist(
symbol="600519", # 参数:贵州茅台股票代码
period="daily", # 参数:日线数据
start_date="20240101", # 参数:起始日期
end_date="20241231", # 参数:结束日期
adjust="qfq" # 参数:前复权
)[["日期", "收盘", "涨跌幅"]] # 数据处理:选择字段
print(df_maotai.head()) # 响应:展示部分结果
输出结果如下:
日期 收盘 涨跌幅
0 2024-01-02 1630.25 -2.45
1 2024-01-03 1639.24 0.55
2 2024-01-04 1614.24 -1.53
3 2024-01-05 1608.60 -0.35
4 2024-01-08 1589.23 -1.20
在上述代码中:
- API:是「东方财富」等数据平台对外提供的数据服务规范 (在上述代码中,我们并未意识到这一点),
akshare封装并简化了这些 API 的调用过程。 - 接口:
ak.stock_zh_a_hist()是akshare库为 Python 用户设计的调用 “接口” (采用函数的方式来实现其功能),本质是把用户的需求打包成标准的 API 请求,发往东方财富的数据服务。 - 参数:如
symbol="600519",start_date="20240101"等,是 API 所需的具体参数,用于明确请求的数据范围、品种等。 - 请求:Python 程序通过
akshare的接口函数,把参数打包发送给数据服务平台,平台返回结果(如 JSON、表格),akshare再把它整理成 DataFrame 返回。
有几个容易混淆的概念需要澄清:
需要说明说的是,在上述代码中,akshare 库以及它提供的函数 ak.stock_zh_a_hist() 都不是 API。akshare 只是对「东方财富」数据平台提供的 API 进行了封装。它提供了更易用的函数接口,让用户可以通过简单的 Python 代码获取复杂的数据,而无需直接处理底层的 API 请求和响应。
换言之,akshare 只是充当了「中间人」的角色:它将用户在 Python 代码中写下的参数和需求,翻译成标准化的 API 请求,通过网络发送给数据平台(如东方财富);平台返回数据后,akshare 再将原始结果处理成便于分析的 DataFrame 格式。这样,用户表面上用的是 akshare 的 Python API,背后则是数据网站的网络 API。这一过程极大简化了数据获取,提升了安全性和自动化程度。
从另一个角度来看,akshare 一方面在后台调用了数据平台 (东方财富) 的网络 API,另一方面也为用户提供了 Python 层的 API(即各种易用的函数/接口)。
2.2 akshare 的其他常用接口函数
除了前文介绍的 stock_zh_a_hist() 接口函数外,akshare 包还提供了丰富的数据接口,方便用户下载不同类型的金融和经济数据。主要接口包括:
主要接口函数列表:
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)