从分析师到开发者:data-link-python 面向对象 API 完整参考(Dataset/Datatable/Database)

发布时间:2026/8/22 13:14:05
从分析师到开发者:data-link-python 面向对象 API 完整参考(Dataset/Datatable/Database) 从分析师到开发者data-link-python 面向对象 API 完整参考Dataset/Datatable/Database【免费下载链接】data-link-pythonA Python library for Nasdaq Data Links RESTful API项目地址: https://gitcode.com/gh_mirrors/da/data-link-pythondata-link-python是 Nasdaq Data Link 官方提供的 Python 客户端库nasdaq-data-link它把 RESTful API 封装成了面向对象 API让 Python 开发者通过Dataset、Datatable、Database三大核心模型用几行代码就能拉取金融时间序列数据、查询数据表并下载整库数据返回结果可直接转换为 pandas DataFrame。两种调用方式分析师的 Quick 方法 vs 开发者的对象方法data-link-python 提供两条上手路径对比可见 README.md 与项目内的两份指南文档方式适合人群特点参考文档Quick 方法nasdaqdatalink.get/get_table分析师一行代码拿数据返回 pandas 表FOR_ANALYSTS.md面向对象方法Dataset/Datatable/Database对象开发者可查元数据、精细控制参数、方便迭代FOR_DEVELOPERS.mdQuick 方法示例一行搞定import nasdaqdatalink data nasdaqdatalink.get(NSE/OIL) # 返回 pandas DataFrame而本文重点讲解的面向对象 API则是开发者构建应用的主流方式data nasdaqdatalink.Dataset(WIKI/AAPL).data() 两种方式都支持通过环境变量NASDAQ_DATA_LINK_API_KEY或本地密钥文件~/.nasdaq/data_link_apikey配置 API Key避免在代码里硬编码密钥。三大核心模型总览一张表看懂 Dataset / Datatable / Database这三个模型分别对应 Nasdaq Data Link 平台上的三类资源代码都定义在nasdaqdatalink/model/目录下模型对应资源数据形态源码位置Dataset单个数据集时间序列如股票日线行情nasdaqdatalink/model/dataset.py️Datatable数据表非时间序列表结构可分页nasdaqdatalink/model/datatable.pyDatabase数据库一组数据集的集合可整库下载nasdaqdatalink/model/database.py三者共同继承自 ModelBase 基类因此都自带一套通用超能力data_fields()— 列出对象所有字段名方便探索式查看数据结构db.name与db[name]— 属性访问和字典下标两种方式等价取值to_list()— 获取原始数据字段名会被自动转换为 Python 兼容风格如Adj. Close→adj_close写代码时不用关心 API 原始命名。Dataset 模型一行代码获取时间序列数据Dataset是获取时间序列数据行情、经济指标等的入口。用数据集编码数据库/代码格式即可实例化dataset nasdaqdatalink.Dataset(WIKI/AAPL)查询数据与常用参数调用.data()并传入params即可过滤和变换数据如指定日期区间、按年聚合、计算相对变化dataset_data nasdaqdatalink.Dataset(WIKI/AAPL).data(params{ start_date: 2001-01-01, end_date: 2010-01-01, collapse: annual, transformation: rdiff, rows: 4 })返回的数据列表支持像操作普通列表一样访问且列名已映射为属性取数非常直观dataset_data[0].date # 取第一条记录的日期 dataset_data[0].close # 按列名直接取值另外Dataset还提供了handle_not_found_error等选项见nasdaqdatalink/model/dataset.py可以让不存在的数据集返回空表而不是抛异常适合批量处理场景。顺藤摸瓜从数据集拿到所属数据库dataset nasdaqdatalink.Dataset(WIKI/AAPL) db dataset.database() # 返回对应的 Database 对象Datatable 模型数据表查询与分页下载Datatable面向表结构数据如 Zacks 财务数据ZACKS/FC与 Dataset 最大的区别是数据可能分页。data nasdaqdatalink.Datatable(ZACKS/FC).data()分页游标cursor_id 的用法当返回结果中存在cursor_id时说明还有下一页把它拼进参数再查一次即可data2 nasdaqdatalink.Datatable(ZACKS/FC).data( params{qopts: {cursor_id: data.meta[next_cursor_id]}} )实际开发中更推荐缩小过滤条件 while 循环翻页的组合写法避免结果集过大触发请求限制完整循环示例见FOR_DEVELOPERS.md。一键打包导出数据表 ZIP 下载不想翻页可以直接把表数据支持带过滤条件导出为 zip 文件# 整个表 nasdaqdatalink.export_table(MER/F1) # 指定保存路径 过滤条件 nasdaqdatalink.export_table(ZACKS/FC, filename/my/path/db.zip, ticker[AAPL, MSFT])底层实现位于nasdaqdatalink/export_table.py与nasdaqdatalink/model/datatable.py的download_file()服务端生成 zip 期间会自动轮询等待生成完毕后自动开始下载。Database 模型元数据查询与整库批量下载Database对象面向数据库这一层资源两大高频能力看元数据和整库打包下载。查看数据库元数据db nasdaqdatalink.Database(WIKI) db.name # 数据库名称 db.data_fields() # 所有字段name、downloads、premium、datasets_count...还支持列出平台上所有数据库默认返回第一页 100 条nasdaqdatalink.Database.all()整库批量下载Bulk Download这是开发者最爱用的功能之一两种方式任选# 方式一拿到下载 URL适合自行用下载工具处理 nasdaqdatalink.Database(ZEA).bulk_download_url() # 方式二直接下载到本地文件/目录 nasdaqdatalink.Database(ZEA).bulk_download_to_file(/path/to/folder)如果只想要前一天的增量数据传入params{download_type: partial}即可。对应的快捷方法nasdaqdatalink.bulkdownload(EOD)定义在nasdaqdatalink/bulkdownload.py。列出数据库下的所有数据集nasdaqdatalink.Database(WIKI).datasets()数据格式转换pandas / CSV / NumPy / 原生列表 随你选通过对象 API 拿到的数据可以统一转换成任意常用格式无缝接入数据分析工作流data.to_pandas() # → pandas DataFrame最常用 data.to_csv() # → CSV 字符串 data.to_numpy() # → NumPy record data.to_list() # → 原生 Python 列表官方建议按最高频率下载原始数据数据清洗和变换交给 pandas 完成建议见README.md的 Recommended Usage 章节。进阶能力MergedDataset 合并与 PointInTime 时点查询MergedDataset多数据集合并查询 想对比多只股票的收盘价MergedDataset可以把多个数据集按日期做全外连接合并源码nasdaqdatalink/model/merged_dataset.pymerged nasdaqdatalink.MergedDataset([ (WIKI/AAPL, {column_index: [11]}), # 只取第 11 列 (WIKI/MSFT, {column_index: [9, 11]}), WIKI/TWTR # 不带选项则取全部列 ]) data merged.data() # 返回合并后的数据同样支持 to_pandas() 等转换PointInTime按时点快照取数针对时点类数据表PointInTime支持三种区间模式源码nasdaqdatalink/model/point_in_time.pyinterval含义必需参数asofdate某一日截至该时刻的快照datefrom左闭右开区间 [start, end)start_date,end_datebetween闭区间 [start, end]start_date,end_datedata nasdaqdatalink.PointInTime(DATABASE/CODE, pit{interval: asofdate, date: 2020-01-01}).data()⚠️ 日期必须是 ISO8601 格式如2021-03-02T13:45:00空格分隔或自然语言日期都会报错。结果列表的通用能力翻页、元数据、遍历Database.all()、Dataset.all()等列表查询返回的是PaginatedList对象nasdaqdatalink/model/paginated_list.py除了普通遍历外还有三个实用入口databases nasdaqdatalink.Database.all() databases.values # 当前页的全部对象 databases.meta # 请求元数据总页数、总数等 databases.has_more_results() # 是否还有下一页 databases.current_page # 当前页码 more nasdaqdatalink.Database.all(params{page: 2}) # 翻到第 2 页注意直接for遍历只覆盖本地已加载的这一页完整遍历需要配合has_more_results()逐页拉取。快速上手清单 安装pip install nasdaq-data-link要求 Python 3.7配密钥设置环境变量NASDAQ_DATA_LINK_API_KEY或写入~/.nasdaq/data_link_apikey配置逻辑见nasdaqdatalink/api_config.py选模型时间序列用Dataset表数据用Datatable整库/元数据用Database转格式拿到数据后调.to_pandas()进入分析流程大结果集优先加过滤条件仍太大就改用export_table/bulk_download_to_file落盘从分析师的一行get()调用到开发者的对象式精细控制data-link-python 的面向对象 API 覆盖了金融数据获取的全场景——元数据探查、分页查询、格式转换、整库下载一套模型全部搞定。【免费下载链接】data-link-pythonA Python library for Nasdaq Data Links RESTful API项目地址: https://gitcode.com/gh_mirrors/da/data-link-python创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考