odds = [] tabs = ijson.items( open(event_json_path, 'r', encoding="utf-8"), 't.item') for tab in tabs: markets = tab.get('o') for market in markets: odd = BookmakerOdd.BookmakerOdd() outcomes = [] selections = market.get('m') if selections: for selection in selections: bookmaker_odd_outcome = BookmakerOddOutcome.BookmakerOddOutcome( ) bookmaker_odd_outcome.outcome_id = str( selection.get('id')) bookmaker_odd_outcome.title = selection.get( 'n') bookmaker_odd_outcome.decimal = float( selection.get('o')) outcomes.append( bookmaker_odd_outcome) odd.title = market.get('n') odd.outcomes = outcomes odds.append(odd)
bookmaker_event.replace_title = EVENT_CHAMPIONSHIP_WINNER events_to_process[key] = bookmaker_event elif event.get('Odd') and event.get('Parent2NodeId') in events_to_process: #print(bookmaker_title + ' :: Processing API event: ' + event.get('Parent2NodeName')) bookmaker_event = events_to_process[event.get('Parent2NodeId')] odd_index = -1 i = 0 for odd in bookmaker_event.odds: if odd.title == event.get('ParentNodeName'): odd_index = i break i += 1 outcome = BookmakerOddOutcome.BookmakerOddOutcome() outcome.outcome_id = event.get('NodeId') outcome.title = event.get('NodeName') outcome.decimal = event.get('Odd') if odd_index == -1: odd = BookmakerOdd.BookmakerOdd() odd.title = event.get('ParentNodeName') odd.outcomes.append(outcome) bookmaker_event.odds.append(odd) else: bookmaker_event.odds[odd_index].outcomes.append(outcome) except (Exception) as ex: