У меня есть скрипт, который я пытаюсь очистить от значения ключа, который не всегда есть. У меня проблема с моим заявлением IF. Это If Shotype is not None
Я бы хотел, чтобы царапина была второстепенным типом, который является видом снятого выстрела, который, очевидно, появляется только тогда, когда выстрел происходит.
Сценарий:
import csv
import requests
import os
req = requests.get('https://statsapi.web.nhl.com/api/v1/game/2017010001/feed/live')
data = req.json()
my_data = []
pk = data['gameData']['game']['pk']
for item in data['liveData']['plays']['allPlays']:
players = item.get('players')
if players:
player_a = players[0]['player']['fullName'] if len(players) > 0 else None
player_b = players[1]['player']['fullName'] if len(players) > 1 else None
player_c = players[2]['player']['fullName'] if len(players) > 2 else None
player_d = players[3]['player']['fullName'] if len(players) > 3 else None
else:
player_a, player_b, player_c, player_d = None, None, None, None
if shotype is not None:
shotype = item['result']['secondaryType']
event = item['result']['event']
shotype = item['result']['secondaryType']
time = item['about']['periodTime']
Tm = item.get('team', {}).get('triCode')
coordinates_x, coordinates_y = item['coordinates'].get('x'), item['coordinates'].get('y')
my_data.append([pk, player_a, player_b, player_c, player_d, event, shotype, time, Tm, coordinates_x, coordinates_y])
headers = ["pk", "player_a", "player_b", "player_c", "player_d", "event", "shotype", "time", "Tm", "coordinates_x", "coordinates_y"]
with open('NHL_' + str(pk) + '_Indv_PBP.csv', "a", newline='') as f:
writer = csv.writer(f)
writer.writerow(headers)
writer.writerows(my_data)
f.close()
JSON:
copyright "NHL and the NHL Shield a…8. All Rights Reserved."
gamePk 2017010001
link "/api/v1/game/2017010001/feed/live"
metaData {…}
gameData {…}
liveData
plays
allPlays
0 {…}
1 {…}
2 {…}
3 {…}
25 {…}
players
0 {…}
1 {…}
result
event "Shot"
eventCode "LAK15"
eventTypeId "SHOT"
description "Markus Granlund Snap Sho…saved by Jonathan Quick"
secondaryType "Snap Shot"
Ссылка: https://statsapi.web.nhl.com/api/v1/game/2017010001/feed/live