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