Код завершается без ошибок, но функция печати не работает - PullRequest
0 голосов
/ 06 ноября 2018

Я пытаюсь выучить Python, и я следую учебному пособию на YouTube. Пока все шло хорошо, но дошло до того, что, если я запускаю код, он завершается без ошибок, однако он не печатает то, что я хочу. Я скопировал именно то, что было в учебнике, и не могу найти разницу. Просто запутался, почему он может завершать код, но не печатать (тикеры). Любая помощь была бы отличной, я чувствую, что это, вероятно, легко исправить, что я пропускаю.

Приветствия

import bs4 as bs
import pickle
import requests

def save_sp500_tickers():
    resp = requests.get('https://en.wikipedia.org/wiki/List_of_S%26P_500_companies')
    soup = bs.BeautifulSoup(resp.text, "lxml")
    table = soup.find('table',{'class': 'wikitable sortable'})
    tickers = []
    for row in table.findALL('tr')[1:]:
        ticker = row.findALL('td')[0].text
        tickers.append(ticker)

    with open("sp500tickers.pickle","wb") as f:
        pickle.dump(tickers, f)

    print(tickers)

    return tickers

    save_sp500_tickers()

Ответы [ 2 ]

0 голосов
/ 06 ноября 2018

Спасибо всем. Удаление отступа save_sp500_tickers () сработало. Также мне пришлось избавиться от

for row in table.findALL('tr')[1:]:
    ticker = row.findALL('td')[0].text

и превратить его в

for row in table.find_all('tr')[1:]:
    ticker = row.find_all('td')[0].text

Оказывается, BeautifulSoup изменил его в более поздних версиях.

0 голосов
/ 06 ноября 2018

вызов save_sp500_tickers () имеет неправильный отступ, поэтому он является частью определения функции и не будет выполнен.

...