發(fā)者:data-link-python 面向?qū)ο?API 完整參考(Dataset/Datatable/Database))
從分析師到開(kāi)發(fā)者data-link-python 面向?qū)ο?API 完整參考Dataset/Datatable/Database【免費(fèi)下載鏈接】data-link-pythonA Python library for Nasdaq Data Links RESTful API項(xiàng)目地址: https://gitcode.com/gh_mirrors/da/data-link-pythondata-link-python是 Nasdaq Data Link 官方提供的 Python 客戶(hù)端庫(kù)nasdaq-data-link它把 RESTful API 封裝成了面向?qū)ο?API讓 Python 開(kāi)發(fā)者通過(guò)Dataset、Datatable、Database三大核心模型用幾行代碼就能拉取金融時(shí)間序列數(shù)據(jù)、查詢(xún)數(shù)據(jù)表并下載整庫(kù)數(shù)據(jù)返回結(jié)果可直接轉(zhuǎn)換為 pandas DataFrame。兩種調(diào)用方式分析師的 Quick 方法 vs 開(kāi)發(fā)者的對(duì)象方法data-link-python 提供兩條上手路徑對(duì)比可見(jiàn) README.md 與項(xiàng)目?jī)?nèi)的兩份指南文檔方式適合人群特點(diǎn)參考文檔Quick 方法nasdaqdatalink.get/get_table分析師一行代碼拿數(shù)據(jù)返回 pandas 表FOR_ANALYSTS.md面向?qū)ο蠓椒―ataset/Datatable/Database對(duì)象開(kāi)發(fā)者可查元數(shù)據(jù)、精細(xì)控制參數(shù)、方便迭代FOR_DEVELOPERS.mdQuick 方法示例一行搞定import nasdaqdatalink data nasdaqdatalink.get(NSE/OIL) # 返回 pandas DataFrame而本文重點(diǎn)講解的面向?qū)ο?API則是開(kāi)發(fā)者構(gòu)建應(yīng)用的主流方式data nasdaqdatalink.Dataset(WIKI/AAPL).data() 兩種方式都支持通過(guò)環(huán)境變量NASDAQ_DATA_LINK_API_KEY或本地密鑰文件~/.nasdaq/data_link_apikey配置 API Key避免在代碼里硬編碼密鑰。三大核心模型總覽一張表看懂 Dataset / Datatable / Database這三個(gè)模型分別對(duì)應(yīng) Nasdaq Data Link 平臺(tái)上的三類(lèi)資源代碼都定義在nasdaqdatalink/model/目錄下模型對(duì)應(yīng)資源數(shù)據(jù)形態(tài)源碼位置Dataset單個(gè)數(shù)據(jù)集時(shí)間序列如股票日線(xiàn)行情nasdaqdatalink/model/dataset.py?Datatable數(shù)據(jù)表非時(shí)間序列表結(jié)構(gòu)可分頁(yè)nasdaqdatalink/model/datatable.pyDatabase數(shù)據(jù)庫(kù)一組數(shù)據(jù)集的集合可整庫(kù)下載nasdaqdatalink/model/database.py三者共同繼承自 ModelBase 基類(lèi)因此都自帶一套通用超能力data_fields()— 列出對(duì)象所有字段名方便探索式查看數(shù)據(jù)結(jié)構(gòu)db.name與db[name]— 屬性訪(fǎng)問(wèn)和字典下標(biāo)兩種方式等價(jià)取值to_list()— 獲取原始數(shù)據(jù)字段名會(huì)被自動(dòng)轉(zhuǎn)換為 Python 兼容風(fēng)格如Adj. Close→adj_close寫(xiě)代碼時(shí)不用關(guān)心 API 原始命名。Dataset 模型一行代碼獲取時(shí)間序列數(shù)據(jù)Dataset是獲取時(shí)間序列數(shù)據(jù)行情、經(jīng)濟(jì)指標(biāo)等的入口。用數(shù)據(jù)集編碼數(shù)據(jù)庫(kù)/代碼格式即可實(shí)例化dataset nasdaqdatalink.Dataset(WIKI/AAPL)查詢(xún)數(shù)據(jù)與常用參數(shù)調(diào)用.data()并傳入params即可過(guò)濾和變換數(shù)據(jù)如指定日期區(qū)間、按年聚合、計(jì)算相對(duì)變化dataset_data nasdaqdatalink.Dataset(WIKI/AAPL).data(params{ start_date: 2001-01-01, end_date: 2010-01-01, collapse: annual, transformation: rdiff, rows: 4 })返回的數(shù)據(jù)列表支持像操作普通列表一樣訪(fǎng)問(wèn)且列名已映射為屬性取數(shù)非常直觀dataset_data[0].date # 取第一條記錄的日期 dataset_data[0].close # 按列名直接取值另外Dataset還提供了handle_not_found_error等選項(xiàng)見(jiàn)nasdaqdatalink/model/dataset.py可以讓不存在的數(shù)據(jù)集返回空表而不是拋異常適合批量處理場(chǎng)景。順藤摸瓜從數(shù)據(jù)集拿到所屬數(shù)據(jù)庫(kù)dataset nasdaqdatalink.Dataset(WIKI/AAPL) db dataset.database() # 返回對(duì)應(yīng)的 Database 對(duì)象Datatable 模型數(shù)據(jù)表查詢(xún)與分頁(yè)下載Datatable面向表結(jié)構(gòu)數(shù)據(jù)如 Zacks 財(cái)務(wù)數(shù)據(jù)ZACKS/FC與 Dataset 最大的區(qū)別是數(shù)據(jù)可能分頁(yè)。data nasdaqdatalink.Datatable(ZACKS/FC).data()分頁(yè)游標(biāo)cursor_id 的用法當(dāng)返回結(jié)果中存在cursor_id時(shí)說(shuō)明還有下一頁(yè)把它拼進(jìn)參數(shù)再查一次即可data2 nasdaqdatalink.Datatable(ZACKS/FC).data( params{qopts: {cursor_id: data.meta[next_cursor_id]}} )實(shí)際開(kāi)發(fā)中更推薦縮小過(guò)濾條件 while 循環(huán)翻頁(yè)的組合寫(xiě)法避免結(jié)果集過(guò)大觸發(fā)請(qǐng)求限制完整循環(huán)示例見(jiàn)FOR_DEVELOPERS.md。一鍵打包導(dǎo)出數(shù)據(jù)表 ZIP 下載不想翻頁(yè)可以直接把表數(shù)據(jù)支持帶過(guò)濾條件導(dǎo)出為 zip 文件# 整個(gè)表 nasdaqdatalink.export_table(MER/F1) # 指定保存路徑 過(guò)濾條件 nasdaqdatalink.export_table(ZACKS/FC, filename/my/path/db.zip, ticker[AAPL, MSFT])底層實(shí)現(xiàn)位于nasdaqdatalink/export_table.py與nasdaqdatalink/model/datatable.py的download_file()服務(wù)端生成 zip 期間會(huì)自動(dòng)輪詢(xún)等待生成完畢后自動(dòng)開(kāi)始下載。Database 模型元數(shù)據(jù)查詢(xún)與整庫(kù)批量下載Database對(duì)象面向數(shù)據(jù)庫(kù)這一層資源兩大高頻能力看元數(shù)據(jù)和整庫(kù)打包下載。查看數(shù)據(jù)庫(kù)元數(shù)據(jù)db nasdaqdatalink.Database(WIKI) db.name # 數(shù)據(jù)庫(kù)名稱(chēng) db.data_fields() # 所有字段name、downloads、premium、datasets_count...還支持列出平臺(tái)上所有數(shù)據(jù)庫(kù)默認(rèn)返回第一頁(yè) 100 條nasdaqdatalink.Database.all()整庫(kù)批量下載Bulk Download這是開(kāi)發(fā)者最?lèi)?ài)用的功能之一兩種方式任選# 方式一拿到下載 URL適合自行用下載工具處理 nasdaqdatalink.Database(ZEA).bulk_download_url() # 方式二直接下載到本地文件/目錄 nasdaqdatalink.Database(ZEA).bulk_download_to_file(/path/to/folder)如果只想要前一天的增量數(shù)據(jù)傳入params{download_type: partial}即可。對(duì)應(yīng)的快捷方法nasdaqdatalink.bulkdownload(EOD)定義在nasdaqdatalink/bulkdownload.py。列出數(shù)據(jù)庫(kù)下的所有數(shù)據(jù)集nasdaqdatalink.Database(WIKI).datasets()數(shù)據(jù)格式轉(zhuǎn)換pandas / CSV / NumPy / 原生列表 隨你選通過(guò)對(duì)象 API 拿到的數(shù)據(jù)可以統(tǒng)一轉(zhuǎn)換成任意常用格式無(wú)縫接入數(shù)據(jù)分析工作流data.to_pandas() # → pandas DataFrame最常用 data.to_csv() # → CSV 字符串 data.to_numpy() # → NumPy record data.to_list() # → 原生 Python 列表官方建議按最高頻率下載原始數(shù)據(jù)數(shù)據(jù)清洗和變換交給 pandas 完成建議見(jiàn)README.md的 Recommended Usage 章節(jié)。進(jìn)階能力MergedDataset 合并與 PointInTime 時(shí)點(diǎn)查詢(xún)MergedDataset多數(shù)據(jù)集合并查詢(xún) 想對(duì)比多只股票的收盤(pán)價(jià)MergedDataset可以把多個(gè)數(shù)據(jù)集按日期做全外連接合并源碼nasdaqdatalink/model/merged_dataset.pymerged nasdaqdatalink.MergedDataset([ (WIKI/AAPL, {column_index: [11]}), # 只取第 11 列 (WIKI/MSFT, {column_index: [9, 11]}), WIKI/TWTR # 不帶選項(xiàng)則取全部列 ]) data merged.data() # 返回合并后的數(shù)據(jù)同樣支持 to_pandas() 等轉(zhuǎn)換PointInTime按時(shí)點(diǎn)快照取數(shù)針對(duì)時(shí)點(diǎn)類(lèi)數(shù)據(jù)表PointInTime支持三種區(qū)間模式源碼nasdaqdatalink/model/point_in_time.pyinterval含義必需參數(shù)asofdate某一日截至該時(shí)刻的快照datefrom左閉右開(kāi)區(qū)間 [start, end)start_date,end_datebetween閉區(qū)間 [start, end]start_date,end_datedata nasdaqdatalink.PointInTime(DATABASE/CODE, pit{interval: asofdate, date: 2020-01-01}).data()?? 日期必須是 ISO8601 格式如2021-03-02T13:45:00空格分隔或自然語(yǔ)言日期都會(huì)報(bào)錯(cuò)。結(jié)果列表的通用能力翻頁(yè)、元數(shù)據(jù)、遍歷Database.all()、Dataset.all()等列表查詢(xún)返回的是PaginatedList對(duì)象nasdaqdatalink/model/paginated_list.py除了普通遍歷外還有三個(gè)實(shí)用入口databases nasdaqdatalink.Database.all() databases.values # 當(dāng)前頁(yè)的全部對(duì)象 databases.meta # 請(qǐng)求元數(shù)據(jù)總頁(yè)數(shù)、總數(shù)等 databases.has_more_results() # 是否還有下一頁(yè) databases.current_page # 當(dāng)前頁(yè)碼 more nasdaqdatalink.Database.all(params{page: 2}) # 翻到第 2 頁(yè)注意直接for遍歷只覆蓋本地已加載的這一頁(yè)完整遍歷需要配合has_more_results()逐頁(yè)拉取。快速上手清單 安裝pip install nasdaq-data-link要求 Python 3.7配密鑰設(shè)置環(huán)境變量NASDAQ_DATA_LINK_API_KEY或?qū)懭雫/.nasdaq/data_link_apikey配置邏輯見(jiàn)nasdaqdatalink/api_config.py選模型時(shí)間序列用Dataset表數(shù)據(jù)用Datatable整庫(kù)/元數(shù)據(jù)用Database轉(zhuǎn)格式拿到數(shù)據(jù)后調(diào).to_pandas()進(jìn)入分析流程大結(jié)果集優(yōu)先加過(guò)濾條件仍太大就改用export_table/bulk_download_to_file落盤(pán)從分析師的一行g(shù)et()調(diào)用到開(kāi)發(fā)者的對(duì)象式精細(xì)控制data-link-python 的面向?qū)ο?API 覆蓋了金融數(shù)據(jù)獲取的全場(chǎng)景——元數(shù)據(jù)探查、分頁(yè)查詢(xún)、格式轉(zhuǎn)換、整庫(kù)下載一套模型全部搞定?!久赓M(fèi)下載鏈接】data-link-pythonA Python library for Nasdaq Data Links RESTful API項(xiàng)目地址: https://gitcode.com/gh_mirrors/da/data-link-python創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考