L oop вложено в l oop, но не распознает цикл верхнего уровня - PullRequest
0 голосов
/ 09 апреля 2020

Я пытаюсь использовать этот код, чтобы получить одну цифру для КАЖДОГО 'eventid', которая представляет собой сумму 'bestOdds', деленную на 100. Для этого вам необходимо сложить 'bestOdds' для КАЖДОГО 'выбора' в пределах КАЖДОГО ' Eventid 'и разделить на 100. Проблема с моим кодом состоит в том, что он суммирует цифры для ВСЕХ' Eventid ', потому что он не распознает мой оригинал для l oop' для события в eventid '.

Мой код:

>>> data1 = []
>>> for event in eventid:
... request2 = requests.get(f'https://www.punters.com.au/api/web/public/Odds/getOddsComparisonCacheable/?allowGet=true&APIKey=******************&eventId={event}&betType=FixedWin', headers={'User-Agent': 'Mozilla/5.0'})
... json2 = request2.json()
... for selection in json2['selections']:
...     data1.append(100/selection.get('bestOdds')
...     sum(data1)

Вывод кода:

    111.63871382786564
    111.63871382786564
    111.63871382786564
    111.63871382786564
    111.63871382786564
    111.63871382786564
    111.63871382786564
    111.63871382786564
    111.63871382786564
    111.63871382786564
    218.69755411039012
    218.69755411039012
    218.69755411039012
    218.69755411039012
    218.69755411039012
    218.69755411039012

Как должен выглядеть вывод кода:

111.63871382786564
111.63871382786564
111.63871382786564
111.63871382786564
111.63871382786564
111.63871382786564
111.63871382786564
111.63871382786564
111.63871382786564
111.63871382786564
107.058840283
107.058840283
107.058840283
107.058840283
107.058840283
107.058840283

Посмотрите, как код суммирует ВСЕ "Eventid's", а не КАЖДЫЙ отдельный "Eventid".

1 Ответ

0 голосов
/ 09 апреля 2020

Если вы хотите суммировать только внутри каждого event, то вам следует инициализировать data1 пустым списком внутри вашего внешнего for l oop, то есть:

for event in eventid:                                                           
    request2 = requests.get(f'https://www.punters.com.au/api/web/public/Odds/getOddsComparisonCacheable/?allowGet=true&APIKey=****************&eventId={event}&betType=FixedWin', headers={'User-Agent': 'Mozilla/5.0'})
    json2 = request2.json()                                                     
    data1 = []                                                                  
    for selection in json2['selections']:                                       
        data1.append(100/selection.get('bestOdds'))                             
    print(sum(data1))

Теперь, итерируя по списку eventid, вы будете хранить только bestOdds для текущего события и печатать их сумму, а не сумму шансов для всех событий, как в случае инициализации data1 вне твоего внешнего for l oop.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...