#python #django #api #dictionary
#python #django #API #словарь
Вопрос:
Я пытаюсь выяснить, как получить данные из этой конечной точки API. Это API Sportsipy. В конечной точке Boxscores он возвращает словарь списка игр с базовой информацией, одним из значений в этом словаре является список ‘boxscore’, который содержит всю статистику из этой отдельной игры.
Когда я пытаюсь использовать точечную нотацию, она просто возвращает ошибку, в которой говорится, что у dict нет атрибута boxscore. Если я попробую цикл for, он скажет, что его невозможно повторить.
Конечная точка Boxscores исходного кода, которая затем ссылается на конечную точку boxscore. Boxscore
Boxscores
import requests
from django.shortcuts import render
from datetime import datetime
from sportsipy.ncaab.boxscore import Boxscore
from sportsipy.ncaab.boxscore import Boxscores
def management(request):
games = Boxscores(datetime(2021, 2, 13))
# See output below (partial and re-formatted)
print(games.games)
print(games.games['2-13-2021'][0]['boxscore'])
# Below - Error: dict has no attribute 'boxscore'
print(games.games.boxscore)
context = {
'games': games
}
return render(request, 'management/management.html', context)
print(games.games)
{'2-13-2021': [{'boxscore': '2021-02-13-18-san-francisco',
'away_name': 'Gonzaga', 'away_abbr': 'gonzaga', 'away_score': 100,
'away_rank': 1, 'home_name': 'San Francisco', 'home_abbr': 'san-
francisco', 'home_score': 61, 'home_rank': None, 'non_di': False,
'top_25': True, 'winning_name': 'Gonzaga', 'winning_abbr': 'gonzaga',
'losing_name': 'San Francisco', 'losing_abbr': 'san-francisco'},
{'boxscore': '2021-02-13-12-ohio-state', 'away_name': 'Indiana',
'away_abbr': 'indiana', 'away_score': 59, 'away_rank': None,
'home_name': 'Ohio State', 'home_abbr': 'ohio-state', 'home_score':
78, 'home_rank': 4, 'non_di': False, 'top_25': True, 'winning_name':
'Ohio State', 'winning_abbr': 'ohio-state', 'losing_name': 'Indiana',
'losing_abbr': 'indiana'},
Комментарии:
1. Если это dict, вам, вероятно, стоит попробовать
games.games["boxscore"]
. Это не javascript 😉2. Я пробую это, и я получаю ключевую ошибку «boxscore»
3. Пожалуйста, предоставьте выходные
print(games.games)
данные . Это может помочь определить, в чем проблема на самом деле.4. загружен скриншот print(games.games)
5. На скриншоте не указано начало структуры, но похоже
boxcore
, что ключ упакован в список. Попробуйтеgames.games['2-13-2021'][0]['boxscore']
. Кроме того, не могли бы вы попытаться захватить часть выходных данных в абзаце исходного кода в вашем вопросе вместо скриншота? Для этого вывода вы могли бы использоватьpprint
стандартную библиотеку?