fantastyczne_gole/notebooks/dataExtraction.ipynb

3.7 KiB

# librarys:

import json
import csv
import os
import pandas as pd
# Functions

def openGameFile(name):
    path = os.path.join("..","data","la_liga_events",name)
    f = open(path)
    data = json.load(f)
    return data

# Czyszczenie danych
# nadpisz 
#  True -  dane zostana dodane do pliku
#  False - plik zostanie nadpisanu
#
def uploadData(inputFile, outputFile, nadpisz):
  try:
    jsonFile = openGameFile(inputFile)
    clean_event = []
    for event in jsonFile:
      if(event["type"]["name"]=="Shot"):
        clean_event = []
        #time
        clean_event.append(event["minute"])
        #location
        clean_event.append(event["position"]["name"])
        # shot type
        clean_event.append(event["shot"]["type"]["name"])
        #outcome
        clean_event.append(event["shot"]["outcome"]["name"])
        
        clean_event.append(event["shot"]["technique"]["name"])

        m_players = []
        en_players = []
        keeper = []
        for player in event["shot"]["freeze_frame"]:
            player_p = 0
            if player["teammate"] :
                m_players.append(player["location"])
            elif player["position"] == 'Goalkeeper':
                keeper = player['location']
            else:
                en_players.append(player["location"])
        for i in range(0,10):
            if(len(m_players)>i):
              clean_event.append(m_players[i])
            else:
              clean_event.append("none")

        for i in range(0,9):
            if(len(en_players)> i):
              clean_event.append(en_players[i])
            else:
              clean_event.append("none")
              
        clean_event.append(keeper)

        if(event["shot"]["outcome"]=="Goal"):
          clean_event.append(1)
        else:
         clean_event.append(0)
  
     
  #Saving to a file
        with open(outputFile, 'a', newline='') as file:
          writer = csv.writer(file)
          writer.writerow(clean_event)

  except:
      raise Exception("invalid data")
for i in range(1,2):
    print(str(i) + "/100")
    name = " (" + str(i) + (").json")
    uploadData(name,"test_dataSet.csv",True)
1/100