提示:
若沒有提供篩選條件,會取出所有資料,建議使用下段介紹的篩選方式,加入適當的篩選條件。
以下文件將說明如何使用TEJ Python API來存取TEJ 資料庫。
僅需要利用 pip 安裝 tejapi
pip install tejapi
安裝完成後,需要在您的程式前面加上
import tejapi
tejapi.ApiConfig.api_key = "YOURAPIKEY"
利用 tejapi.ApiConfig.ignoretz 參數決定時間欄位是否顯示時區(預設為False啟用),設定為 True則忽略時區
import tejapi
tejapi.ApiConfig.api_key = "YOURAPIKEY"
tejapi.ApiConfig.ignoretz = True
利用 tejapi.ApiConfig.info() 可取得各類使用資訊
import tejapi
tejapi.ApiConfig.api_key = "YOURAPIKEY"
info = tejapi.ApiConfig.info()
參數 | 詳細說明 | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
key | 您的APIKEY | ||||||||||||||
startDate | APIKEY開始使用日 | ||||||||||||||
endDate | APIKEY結束日 | ||||||||||||||
reqDayLimit | 每日呼叫次數上限 | ||||||||||||||
rowsDayLimit | 每日資料筆數上限 | ||||||||||||||
rowsMonthLimit | 每月資料筆數上限 | ||||||||||||||
todayReqCount | 本日呼叫次數 | ||||||||||||||
todayRows | 本日資料筆數 | ||||||||||||||
monthRows | 本月資料筆數 | ||||||||||||||
user | 使用者資訊
|
以下將說明如何使用TEJ Python API查詢資料。
以上市(櫃)未調整股價(日) TWN/APRCD為例,可直接使用 tejapi.get()方法取得,範例如下
data = tejapi.get('TWN/APRCD')
若沒有提供篩選條件,會取出所有資料,建議使用下段介紹的篩選方式,加入適當的篩選條件。
如果需要針對欄位篩選,例如僅須取得台灣加權股價指數(Y9999),請直接增加欄位篩選條件 coid='Y9999'
data = tejapi.get('TWN/APRCD',coid='Y9999')
或是同時取得兩種指數資料Y9999及Y9998,請利用序列條件 coid=['Y9999','Y9998']
data = tejapi.get('TWN/APRCD',coid=['Y9999','Y9998'])
單次取得資料限制最多10,000筆,您可以增加 paginate=True,程式將自動分次取得資料
data = tejapi.get('TWN/APRCD',coid='Y9999', paginate=True)
系統限制單次取得最大筆數為10,000筆,可使用 paginate=True 參數分次取得資料,但總筆數單次最多為1,000,000筆。請斟酌使用篩選條件降低筆數。
您可以針對多個欄位做篩選
data = tejapi.get('TWN/APRCD',coid='Y9999', mdate='2018-01-20' ,paginate=True)
若僅需要取得單一欄位,請利用特殊參數 opts中的columns條件,例如僅須取得開盤價欄位(open_d)
data = tejapi.get('TWN/APRCD',opts={'columns':'open_d'})
或是多個欄位(mdate,open_d)
data = tejapi.get('TWN/APRCD',opts={'columns':['mdate','open_d']})
您可以針對資料欄位範圍篩選,例如交易日大於2018-01-01的資料
data = tejapi.get('TWN/APRCD',coid='Y9999', mdate={'gt':'2018-01-01'}, paginate=True)
您可以針對資料欄位範圍篩選,例如交易日大於2018-01-01且小於2018-02-01的資料
data = tejapi.get('TWN/APRCD',coid='Y9999', mdate={'gt':'2018-01-01','lt':'2018-02-01'}, paginate=True)
篩選運算 | 詳細說明 | 使用範例 |
---|---|---|
= | 指定欄位等於指定的文字或數值 | coid='Y9999' |
gt | 指定欄位大於指定的數值 | mdate={'gt':'2018-01-01'} |
lt | 指定欄位小於指定的數值 | mdate={'lt':'2018-01-01'} |
gte | 指定欄位大於或等於指定的數值 | mdate={'gte':'2018-01-01'} |
lte | 指定欄位小於或等於指定的數值 | mdate={'lte':'2018-01-01'} |
ne | 指定欄位不等於指定的數值 | mdate={'ne':'2018-01-01'} |
參數 | 是否必要 | 詳細說明 | 使用範例 |
---|---|---|---|
columns | 否 | 指定需要取得的欄位,欄位名稱用逗號隔開 | opts={'columns':['coid','mdate','val']} |
per_page | 否 | 指定每次取得的資料數量(上限為10000),總筆數不得超過1,000,000筆 | opts={'per_page':100} |
sort | 否 | 指定排序的欄位及排序方式,採用 [欄位名稱].[排序方式]表示,排序方式有正向排序(asc)及反向排序(desc),預設為正向排序。 | opts={'sort':'mdate.desc'} |
pivot | 否 | 轉置表格功能,可讓資料變成欄位。目前僅支援財務相關表格 | opts={'pivot':True} |
參數 | 是否必要 | 詳細說明 | 使用範例 |
---|---|---|---|
chinese_column_name | 否 | 欄位以中文顯示 | chinese_column_name=True |
以下文件將說明如何取得表格資訊。
import tejapi
tejapi.ApiConfig.api_key = "YOURAPIKEY"
table_info = tejapi.table_info('TWN/APRCD')
參數 | 詳細說明 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
dbCode | 資料庫代碼 | ||||||||||||
tableCode | 資料表代碼 | ||||||||||||
name | 資料表名稱 | ||||||||||||
description | 資料表詳細說明 | ||||||||||||
primaryKey | 資料表主鍵列表 | ||||||||||||
filters | 資料表可篩選欄位 | ||||||||||||
columns | 資料表欄位說明
|
||||||||||||
pivot | 是否支援轉置 | ||||||||||||
status | 資料表狀態
|
以下文件將說明利用關鍵字搜尋表格。
import tejapi
tejapi.ApiConfig.api_key = "YOURAPIKEY"
search = tejapi.search_table("關鍵字")
參數 | 詳細說明 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
matchType | 匹配類別
|
||||||||||||
tableId | 資料表代碼 | ||||||||||||
tableName | 資料表名稱 | ||||||||||||
tableDesc | 資料表詳細說明 | ||||||||||||
columns | 資料表欄位說明
|