一文教你如何利用免费接口在Python中获取并整理基金历史净值数据

2023-10-12 17:10

本文主要是介绍一文教你如何利用免费接口在Python中获取并整理基金历史净值数据,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一文教你如何利用免费接口在Python中获取并整理基金历史净值数据

  • 一、接口地址与格式
  • 二、获取数据与整理

这篇文章教大家如何在Python中使用免费的数据接口获取我们想要的各基金历史净值数据,以便我们进行后续的基金量化分析。

一、接口地址与格式

这里使用的接口地址是https://api.doctorxiong.club/v1/fund/detail?code=xxx,其中xxx为基金对应代号。

这里我们随便选一个例子,比如“公募一哥”张坤的易方达蓝筹精选混合,代号005827,对应的接口地址就是https://api.doctorxiong.club/v1/fund/detail?code=005827

我们用浏览器打开看看,是下面这样的数据格式:
在这里插入图片描述
分析结果,该接口返回的是一个字典,里面的key有"code",“message”,“data”。
其中"data"又是一个字典,里面包括该基金的各种信息和数据的key,比如"code",“name”,"manager"等等;
该基金的历史单位净值和历史累计净值数据就对应于其中的"netWorthData"和"totalNetWorthData"的key里。(大家可以自行观察一下)

二、获取数据与整理

使用到的库:

import urllib
from bs4 import BeautifulSoup
import json
import pandas as pd

先对接口地址发起请求,并利用beautifulsoup解析标签的功能来获取上面所示的文本信息。

>>> html=urllib.urlopen("https://api.doctorxiong.club/v1/fund/detail?code=005827")
>>> bsobj=BeautifulSoup(html.read())
>>> p_text = bsobj.p.get_text()

此时得到的p_text是unicode类型的文本,我们需要利用json将它转换成字典的数据类型。

>>> text_dict = json.loads(p_text)

现在我们来看一下这个字典里是不是有我们刚刚提到的各种key:

>>> print text_dict['data']['code']
005827
>>> print text_dict['data']['name']
易方达蓝筹精选混合
>>> print text_dict['data']['manager']
张坤

然后取出历史单位净值和历史累计净值,每天的数据都是以列表的形式保存,最后一个对象对应着今天的净值情况,我们输出看一看。

>>> Wdata1 = text_dict['data']['netWorthData']
>>> Wdata2 = text_dict['data']['totalNetWorthData']
>>> print Wdata1[-1]
[u'2021-09-10', u'2.5779', u'2.72', u'']
>>> print Wdata2[-1]
[u'2021-09-10', u'2.5779']

因为这个基金没有过分红派息,所以单位净值和累计净值是一样的,都是2.5779。值得注意的是单位净值里还有日涨幅率的数据,也就是上面的2.72。

最后我们把累计净值数据转换成float类型,并整体保存成DataFrame的数据类型。

>>> for i in Wdata2:i[1] = float(i[1])
>>> Wdf = pd.DataFrame(Wdata2,columns=['Date','Worth'],dtype=float)
>>> print WdfDate   Worth
0    2018-09-05  1.0000
1    2018-09-07  0.9986
2    2018-09-14  0.9985
3    2018-09-21  1.0143
4    2018-09-28  1.0192
5    2018-10-08  0.9972
6    2018-10-09  0.9970
7    2018-10-10  0.9885
8    2018-10-11  0.9731
9    2018-10-12  0.9872
10   2018-10-15  0.9820
11   2018-10-16  0.9793
12   2018-10-18  0.9706
13   2018-10-19  0.9855
14   2018-10-22  1.0084
15   2018-10-23  0.9830
16   2018-10-24  0.9748
17   2018-10-25  0.9623
18   2018-10-26  0.9529
19   2018-10-29  0.9246
20   2018-10-30  0.9201
21   2018-10-31  0.9374
22   2018-11-01  0.9503
23   2018-11-02  0.9893
24   2018-11-05  0.9727
25   2018-11-06  0.9686
26   2018-11-07  0.9667
27   2018-11-08  0.9688
28   2018-11-09  0.9602
29   2018-11-12  0.9593
..          ...     ...
680  2021-08-02  2.5664
681  2021-08-03  2.5785
682  2021-08-04  2.5596
683  2021-08-05  2.5337
684  2021-08-06  2.5355
685  2021-08-09  2.5653
686  2021-08-10  2.6544
687  2021-08-11  2.6350
688  2021-08-12  2.5897
689  2021-08-13  2.5887
690  2021-08-16  2.5718
691  2021-08-17  2.4887
692  2021-08-18  2.5224
693  2021-08-19  2.4838
694  2021-08-20  2.4039
695  2021-08-23  2.4548
696  2021-08-24  2.5038
697  2021-08-25  2.5281
698  2021-08-26  2.4635
699  2021-08-27  2.4561
700  2021-08-30  2.4472
701  2021-08-31  2.4386
702  2021-09-01  2.5119
703  2021-09-02  2.5006
704  2021-09-03  2.5057
705  2021-09-06  2.5506
706  2021-09-07  2.5704
707  2021-09-08  2.5484
708  2021-09-09  2.5097
709  2021-09-10  2.5779[710 rows x 2 columns]

最后的最后,,建议把"Date"转换成datetime的类型,这样方便日后放入各种量化框架中进行测试。

>>> Wdf['Date'] = pd.to_datetime(Wdf['Date'],format='%Y-%m-%d')

这篇关于一文教你如何利用免费接口在Python中获取并整理基金历史净值数据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/qq_38679612/article/details/120255029
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/197247

相关文章

利用Python实现Excel文件智能合并工具

《利用Python实现Excel文件智能合并工具》有时候,我们需要将多个Excel文件按照特定顺序合并成一个文件,这样可以更方便地进行后续的数据处理和分析,下面我们看看如何使用Python实现Exce... 目录运行结果为什么需要这个工具技术实现工具的核心功能代码解析使用示例工具优化与扩展有时候,我们需要将

Python+PyQt5实现文件夹结构映射工具

《Python+PyQt5实现文件夹结构映射工具》在日常工作中,我们经常需要对文件夹结构进行复制和备份,本文将带来一款基于PyQt5开发的文件夹结构映射工具,感兴趣的小伙伴可以跟随小编一起学习一下... 目录概述功能亮点展示效果软件使用步骤代码解析1. 主窗口设计(FolderCopyApp)2. 拖拽路径

Python使用Reflex构建现代Web应用的完全指南

《Python使用Reflex构建现代Web应用的完全指南》这篇文章为大家深入介绍了Reflex框架的设计理念,技术特性,项目结构,核心API,实际开发流程以及与其他框架的对比和部署建议,感兴趣的小伙... 目录什么是 ReFlex?为什么选择 Reflex?安装与环境配置构建你的第一个应用核心概念解析组件

Python将字符串转换为小写字母的几种常用方法

《Python将字符串转换为小写字母的几种常用方法》:本文主要介绍Python中将字符串大写字母转小写的四种方法:lower()方法简洁高效,手动ASCII转换灵活可控,str.translate... 目录一、使用内置方法 lower()(最简单)二、手动遍历 + ASCII 码转换三、使用 str.tr

Python处理超大规模数据的4大方法详解

《Python处理超大规模数据的4大方法详解》在数据的奇妙世界里,数据量就像滚雪球一样,越变越大,从最初的GB级别的小数据堆,逐渐演变成TB级别的数据大山,所以本文我们就来看看Python处理... 目录1. Mars:数据处理界的 “变形金刚”2. Dask:分布式计算的 “指挥家”3. CuPy:GPU

Python多进程、多线程、协程典型示例解析(最新推荐)

《Python多进程、多线程、协程典型示例解析(最新推荐)》:本文主要介绍Python多进程、多线程、协程典型示例解析(最新推荐),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定... 目录一、multiprocessing(多进程)1. 模块简介2. 案例详解:并行计算平方和3. 实现逻

Python对PDF书签进行添加,修改提取和删除操作

《Python对PDF书签进行添加,修改提取和删除操作》PDF书签是PDF文件中的导航工具,通常包含一个标题和一个跳转位置,本教程将详细介绍如何使用Python对PDF文件中的书签进行操作... 目录简介使用工具python 向 PDF 添加书签添加书签添加嵌套书签Python 修改 PDF 书签Pytho

使用Vue-ECharts实现数据可视化图表功能

《使用Vue-ECharts实现数据可视化图表功能》在前端开发中,经常会遇到需要展示数据可视化的需求,比如柱状图、折线图、饼图等,这类需求不仅要求我们准确地将数据呈现出来,还需要兼顾美观与交互体验,所... 目录前言为什么选择 vue-ECharts?1. 基于 ECharts,功能强大2. 更符合 Vue

Java如何根据word模板导出数据

《Java如何根据word模板导出数据》这篇文章主要为大家详细介绍了Java如何实现根据word模板导出数据,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... pom.XML文件导入依赖 <dependency> <groupId>cn.afterturn</groupId>

利用Python实现可回滚方案的示例代码

《利用Python实现可回滚方案的示例代码》很多项目翻车不是因为不会做,而是走错了方向却没法回头,技术选型失败的风险我们都清楚,但真正能提前规划“回滚方案”的人不多,本文从实际项目出发,教你如何用Py... 目录描述题解答案(核心思路)题解代码分析第一步:抽象缓存接口第二步:实现两个版本第三步:根据 Fea