Как обновить версию Python IBM Watson? - PullRequest
0 голосов
/ 22 мая 2019

Домашнее задание - проект для Python Notebook в Уотсоне.Домашнее задание предоставляет следующие коды для функции get_basketball_stats (link = "...").Однако он возвращает ошибочный результат: значение словаря и ключ не совпадают, т. Е. Ключу "PPG" присваиваются значения "GP".

Я попробовал те же коды в Google Colab.Результат верный.Версия Google Colab Python - 3.6.7.Я подозреваю, что устаревшая версия Python в Watson (3.5.5) вызывает ошибочный словарь, и поэтому я задаю вопрос здесь: как обновить версию Python Watson?

def get_basketball_stats(link='https://en.wikipedia.org/wiki/Michael_Jordan'):
# read the webpage 
response = requests.get(link)
# create a BeautifulSoup object to parse the HTML 
soup = bs4.BeautifulSoup(response.text, 'html.parser')
# the player stats are defined  with the attribute CSS class set to 'wikitable sortable'; 
#therefore we create a tag object "table"
table=soup.find(class_='wikitable sortable')

# заголовки таблицыв первой строке таблицы (tr) мы создаем объект тега с первой строкой
headers = table.tr # имена столбцов таблицы отображаются в виде аббревиатуры;поэтому мы находим все теги abbr и возвращаем к ним итератор title = headers.find_all ("abbr") # создаем словарь и передаем заголовки таблицы в качестве ключей data = {title ['title']: [] для заголовка в заголовках} # мы будем хранить каждый столбец в виде списка в словаре, заголовок столбца будет ключом словаря

#we iterate over each table row by fining each table tag tr and assign it to the objed
for row in table.find_all('tr')[1:]:

    #we iterate over each cell in the table, as each cell corresponds to a different column we all obtain the correspondin key corresponding the column n 
    for key,a in zip(data.keys(),row.find_all("td")[2:]):
        # we append each elment and strip any extra HTML contnet 
        data[key].append(''.join(c for c in a.text if (c.isdigit() or c == ".")))

# we remove extra rows by finding the smallest list     
Min=min([len(x)  for x in data.values()])
#we convert the elements in the key to floats 
for key in data.keys():
    data[key]=list(map(lambda x: float(x), data[key][:Min]))
return data

Я ожидаю, что ключи будут соответствовать их соответствующим значениям в Watson, как это делает Google Colad.

...