我有一個請求 URL,用于收集每天的比賽資料。我需要呼叫 API 來獲取當天的比賽資訊,然后我需要使用每場比賽的比賽密鑰來進行另一次呼叫以獲取每場比賽的資料。
到目前為止,我有下面的代碼來收集當天的比賽資訊。
def races_list():
race_keys = []
link = f'{Base_url}meetings.json?app_id={AppID}&app_key={AppKey}&searchRequest.startDateTime={StartDate}&searchRequest.endDateTime={EndDate}&searchRequest.raceType={RaceType}&searchRequest.countryCodes={Country}'
print(link)
# Request data from link as 'str'
data = requests.get(link).text
# convert 'str' to Json
data = json.loads(data)
# JSON PARSE
for event_data in data['meetings']:
for race_data in event_data['events']:
race_start = race_data['advertisedDateTimeUtc']
race_status = race_data['status']
race_key = race_data['eventKey']
race_number = race_data['sequence']
race_name = race_data['name']
race_id = race_data['id']
race_distance = race_data['distanceMetres']
race_class_1 = race_data['classes'][0]
race_keys.append(race_key)
print(f'{race_start} {race_status} {race_key} {race_number} {race_name} {race_id} {race_distance} {race_class_1}')
return race_keys
if __name__ == "__main__":
races_list()
這將回傳下面的資料
2022-10-28T02:00:00Z Open 202210280200.T.AUS.pakenham_synthetic.1 1 Www.Pakcup.Com.Au Mdn Plate race:202210280200.T.AUS.pakenham_synthetic.1 1100 Maiden
2022-10-28T02:30:00Z Open 202210280200.T.AUS.pakenham_synthetic.2 2 Pakenham Cup Tixs On Sale Mdn race:202210280200.T.AUS.pakenham_synthetic.2 1100 Maiden
2022-10-28T03:00:00Z Open 202210280300.T.AUS.pakenham_synthetic.3 3 Schweppes Mdn Plate race:202210280300.T.AUS.pakenham_synthetic.3 1600 Maiden
2022-10-28T03:30:00Z Open 202210280300.T.AUS.pakenham_synthetic.4 4 Grant's Plumbing Mdn Plate race:202210280300.T.AUS.pakenham_synthetic.4 1400 Maiden
2022-10-28T04:00:00Z Open 202210280400.T.AUS.pakenham_synthetic.5 5 Bet With Mates-Bm70 race:202210280400.T.AUS.pakenham_synthetic.5 1400 Benchmark 70
2022-10-28T04:30:00Z Open 202210280400.T.AUS.pakenham_synthetic.6 6 Harris Automation Engin.-Bm58 race:202210280400.T.AUS.pakenham_synthetic.6 2200 Benchmark 58
2022-10-28T05:00:00Z Open 202210280500.T.AUS.pakenham_synthetic.7 7 Bet With Mates-Bm58 race:202210280500.T.AUS.pakenham_synthetic.7 1200 Benchmark 58
2022-10-28T05:30:00Z Open 202210280500.T.AUS.pakenham_synthetic.8 8 De Bortoli Spring Soiree-Bm58 race:202210280500.T.AUS.pakenham_synthetic.8 1200 Benchmark 58
2022-10-28T06:00:00Z Open 202210280600.T.AUS.pakenham_synthetic.9 9 Robertson Wouters (Bm58) race:202210280600.T.AUS.pakenham_synthetic.9 1400 Benchmark 58
2022-10-28T02:35:00Z Open 202210280200.T.AUS.wagga.1 1 Mountaineer Cup (Bm74) race:202210280200.T.AUS.wagga.1 2500 Benchmark 74
2022-10-28T03:10:00Z Open 202210280300.T.AUS.wagga.2 2 Vale Katrina Dimitropoulos-C1 race:202210280300.T.AUS.wagga.2 1600 Class 1
2022-10-28T03:45:00Z Open 202210280300.T.AUS.wagga.3 3 Good Talk Bragger Cup (Bm50) race:202210280300.T.AUS.wagga.3 1600 Benchmark 50
2022-10-28T04:25:00Z Open 202210280400.T.AUS.wagga.4 4 Wagga Early Years Learning Ctr race:202210280400.T.AUS.wagga.4 1000 Open
2022-10-28T05:05:00Z Open 202210280500.T.AUS.wagga.5 5 Delta Star Designs Mdn Hcp race:202210280500.T.AUS.wagga.5 1000 Maiden
2022-10-28T05:40:00Z Open 202210280500.T.AUS.wagga.6 6 Reece Group Wagga Wagga Mdn race:202210280500.T.AUS.wagga.6 1200 Maiden
2022-10-28T06:20:00Z Open 202210280600.T.AUS.wagga.7 7 Sca Stan Sadleir Stakes race:202210280600.T.AUS.wagga.7 1300 Open
2022-10-28T06:55:00Z Open 202210280600.T.AUS.wagga.8 8 Commins Hendriks Solicitors-C1 race:202210280600.T.AUS.wagga.8 1200 Class 1
2022-10-28T06:15:00Z Open 202210280600.T.AUS.moonee_valley.1 1 Maiden Plate race:202210280600.T.AUS.moonee_valley.1 1200 Maiden
2022-10-28T06:45:00Z Open 202210280600.T.AUS.moonee_valley.2 2 Tote Bar & Dining (Bm70) race:202210280600.T.AUS.moonee_valley.2 1200 Benchmark 70
2022-10-28T07:15:00Z Open 202210280700.T.AUS.moonee_valley.3 3 Christmas At The Valley Hcp-C1 race:202210280700.T.AUS.moonee_valley.3 1500 Class 1
2022-10-28T07:45:00Z Open 202210280700.T.AUS.moonee_valley.4 4 Make-A-Wish Australia Mdn race:202210280700.T.AUS.moonee_valley.4 1600 Maiden
2022-10-28T08:15:00Z Open 202210280800.T.AUS.moonee_valley.5 5 Dce (Bm70) race:202210280800.T.AUS.moonee_valley.5 1600 Benchmark 70
2022-10-28T08:45:00Z Open 202210280800.T.AUS.moonee_valley.6 6 55 Sec Challenge(Bm70) race:202210280800.T.AUS.moonee_valley.6 955 Benchmark 70
2022-10-28T09:15:00Z Open 202210280900.T.AUS.moonee_valley.7 7 Musk Creek Farm (Bm70) race:202210280900.T.AUS.moonee_valley.7 2040 Benchmark 70
2022-10-28T09:45:00Z Open 202210280900.T.AUS.moonee_valley.8 8 Cirka (Bm64) race:202210280900.T.AUS.moonee_valley.8 2040 Benchmark 64
2022-10-28T10:15:00Z Open 202210281000.T.AUS.moonee_valley.9 9 Drummond Golf (Bm64) race:202210281000.T.AUS.moonee_valley.9 1200 Benchmark 64
2022-10-28T02:57:00Z Open 202210280200.T.AUS.ipswich.1 1 This Is A Conversation (Bm65) race:202210280200.T.AUS.ipswich.1 1350 Benchmark 65
2022-10-28T03:34:00Z Open 202210280300.T.AUS.ipswich.2 2 Base Metal Fabrication Mdn race:202210280300.T.AUS.ipswich.2 1350 Maiden
2022-10-28T04:12:00Z Open 202210280400.T.AUS.ipswich.3 3 Swich On Inc Mdn Plate race:202210280400.T.AUS.ipswich.3 1350 Maiden
2022-10-28T04:47:00Z Open 202210280400.T.AUS.ipswich.4 4 Oxley Golf Club (Bm68) race:202210280400.T.AUS.ipswich.4 800 Benchmark 68
2022-10-28T05:27:00Z Open 202210280500.T.AUS.ipswich.5 5 Icare Services Australia (C4) race:202210280500.T.AUS.ipswich.5 1200 Class 4
2022-10-28T06:04:00Z Open 202210280600.T.AUS.ipswich.6 6 Sirromet Hcp (C1) race:202210280600.T.AUS.ipswich.6 1350 Class 1
2022-10-28T06:40:00Z Open 202210280600.T.AUS.ipswich.7 7 Nuturf (Bm65) race:202210280600.T.AUS.ipswich.7 1350 Benchmark 65
2022-10-28T07:20:00Z Open 202210280700.T.AUS.ipswich.8 8 Bundaberg Rum Hcp (C2) race:202210280700.T.AUS.ipswich.8 1666 Class 2
2022-10-28T02:15:00Z Open 202210280200.T.AUS.coonamble.1 1 Southern Cross Turf Hcp (C2) race:202210280200.T.AUS.coonamble.1 1600 Class 2
2022-10-28T02:50:00Z Open 202210280200.T.AUS.coonamble.2 2 Qube Agri&Paragon Pastoral Mdn race:202210280200.T.AUS.coonamble.2 1200 Maiden
2022-10-28T03:25:00Z Open 202210280300.T.AUS.coonamble.3 3 Dad & Dave Turf Mdn Plate race:202210280300.T.AUS.coonamble.3 1400 Maiden
2022-10-28T04:05:00Z Open 202210280400.T.AUS.coonamble.4 4 Keady & Nalder Families Mdn race:202210280400.T.AUS.coonamble.4 1100 Maiden
2022-10-28T04:40:00Z Open 202210280400.T.AUS.coonamble.5 5 Swanny's Foods (Bm58) race:202210280400.T.AUS.coonamble.5 1100 Benchmark 58
2022-10-28T05:20:00Z Open 202210280500.T.AUS.coonamble.6 6 Inland Petroleum Hcp (C1) race:202210280500.T.AUS.coonamble.6 1100 Class 1
2022-10-28T05:55:00Z Open 202210280500.T.AUS.coonamble.7 7 Geronimo Farm Equipment (Bm66) race:202210280500.T.AUS.coonamble.7 1200 Benchmark 66
2022-10-28T06:30:00Z Open 202210280600.T.AUS.coonamble.8 8 Nutrien Ag (Bm58) race:202210280600.T.AUS.coonamble.8 1400 Benchmark 58
我需要在另一個函式中的另一個請求 URL 中使用比賽密鑰(例如 T.AUS.pakenham_synthetic.1)來收集每場比賽所需的資料。
所以我需要一個一個地使用比賽密鑰來呼叫下面的這個 URL,然后我將決議該比賽資料并進入下一場比賽(比賽密鑰)。
{Base_url}events/202210280200.T.AUS.pakenham_synthetic.1.json?app_id={AppID}&app_key={AppKey}
實作這一目標的最佳方法是什么?
謝謝您的幫助。仍在學習,如果這是一個明顯的問題,請道歉。
uj5u.com熱心網友回復:
您需要遍歷由races_list() 收集的資料。這是一個基本示例,盡管您可能需要考慮將其移至自己的函式中。
if __name__ == "__main__":
for key in races_list():
data = requests.get(f'{Base_url}events/{key}.json?app_id={AppID}&app_key={AppKey}').text
# parse race data
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/523276.html
